кинул исключение?
разве когда reject возвращаешь не тормозится
reject в Promise.all?
1) в строке 21 async не нужен, ты же явно создаешь промис в строке 22 2) добавь catch к promise.all в строке 33, он сработает, когда сработает reject у одного из промисов в массиве
3) promise.all не выполняет промисы, промис начинает выполнятся сразу после создания, прекратить выполнение созданного промиса невозможно
Promise.all только собирает результаты выполнения промисов, если не было ошибок.
это упрощенный код, там именно асинхронный метод, я на это повлиять не могу
а как последовательно выполнить тысячу промисов один за другим?
Вот как-то так (async () => { try { for (let idx=0; idx<1000; ++idx) { await new Promise((resolve, reject) => { setTimeout(() => { if (Math.random() < 0.1) return reject(new Error()); console.log("done"); resolve(); }, 1000) }); } } catch (err) { console.log("error"); } })();
но по сути просто обернул в трай кэч а очередь промисов как бомбила так и будет продолжать бомбить? Можно как нить очередь бахнуть?
не будет бомбить, при ошибке будет выход из цикла
я из твоего кода не вижу этого
запусти тогда
если промис реджектится, то await дает ошибку, которая перехватывается try catch
Обсуждают сегодня