| 
 promise-mysql Доброго времени суток.  Пробую понять принц работы промисов. Все вроде просто, дождался и пошел дальше, но как быть с циклами ? вот пример 
var result = connection.query("SELECT * FROM form_ok  WHERE  id_form = '"+id_form+"'" );
return result;
}).then(function(rows){
				var numbers_form_ok = rows.length;
				for (var i = 0; i < numbers_form_ok; i++) {
					var k=0;
 				  id_variant = rows[i].id_variant;
// первый запрос с ним все хорошо 
var result =connection.query("SELECT * FROM form_variant WHERE id= '"+id_variant+"'");
result.then(function(rows){
// тут второй запрос в этом же цикле стоит мне написать 
connection.query("SELECT * FROM....
как сразу ошибка | 
| 
 набросок 
var result = connection.query("SELECT * FROM form_ok  WHERE  id_form = '"+id_form+"'" )
  .then(function(rows){
    return rows.reduce(function (p, row) {
      return p.then(connection.query.bind(connection, "SELECT * FROM form_variant WHERE id= '" + row.id_variant + "'"))
        .then(function(rowsVariant) {
          // тут что-то делаем с rowsVariant
        }, function () {
          // обработка ошибки для запроса из form_variant
        });
    }, Promise.resolve());
  });
 | 
| 
 Для массивов использовать Promise.all. Никаких циклов с промисами. Промисы - те же коллбэки в симпатичной обёртке. Никакой магии они не делают, и то что делать было нельзя до промисов(например ожидание удалённого ответа в цикое) - нельзя и с промисами. В цикле можно использовать await промиса. Нативный await, который уже отдельная языковая конструкция, и может делать то, что не может чистый промис. | 
| 
 Цитата: 
 хотя хрен знает, из обрывков кода ничего не понятно... | 
| 
 Цитата: 
 Promise.all - ВЕЩЬ! сейчас попробую собрать отдельно массивы и избавиться от циклов. Если не будет получиться буду пробовать вешать await Прочитал кучу макулатуры и очень многие советуют перестать думать асинхронно. Но как ?? Если в бд одна таблица с ключами по которым надо выбрать из другой, проверить и выбрать из третей ... 5 лет с php - сломайте меня полностью :haha: | 
| 
 Вообще просто стройте sql запросы по-сложней. Большинство задач решается одним запросом и тогда не надо заморачиваться.) | 
| 
 Цитата: 
 | 
| 
 Всем Большое спасибо! Разобрался с промис.олл Но в итоге реально усложнил сам запрос в sql итог две строки вместо кучи ожиданий. Благодарю! | 
| Часовой пояс GMT +3, время: 23:08. |