можно, создаешь все промисы сихронно, потом в цикли эвейтишь всё, они будут запущены одновременно, и дальше пойдет только когда кочатся всё
Я имел в виду async функции. Как понять создаёшь синхронно? То есть вызвать эти функции без await и в цикле с этим работать? Проще на их промисах Promise.all() вызвать, тогда уж.
в цикле эвейтишь - это уже не как promise.all
Так должно упасть при первом же reject, а не дожидаться пока все выполняться
оно так и сделает
ты создаешь промисы заранее, в цикле просто ждешь их всех по 1, работать будет как промис олл
Ну напиши цикл, покажи, что имеешь в виду
кастомная очередь полезна когда задачи сваливаются в разное время
p1= fetch(url1) p2=fetch(url2) for(let p of [p1,p2]){ await p }
Исходный вопрос был написать promise.all используя await
да мне было интересно посмотреть как оно сделано. ну, как я понимаю, тот цикл с await p вполне аналогичен
За исключением того что в promise. All все промисы стартуют почти одновременно, а в цикле они стартуют последовательно
все промисы стартуют еще до запуска promise.all
Нет, твой цикл упадет только когда ты сделаешь await промиса, который reject
К примеру p2 сделал reject через 1 мс, но твой код не узнает об этом пока не завершиться p1
Обсуждают сегодня