170 похожих чатов

Подскажите как тормознуть/прекратить выполнение Promise.all, если один из его промисов

кинул исключение?

16 ответов

23 просмотра

разве когда reject возвращаешь не тормозится

Владимир-61 Автор вопроса

В упрощенном виде мой код выглядит так. Тоесть генерится последовательно 1к промисов и по ошибке любого из них нужно прекратить исполнять остальные в очереди

Владимир 61
screenshot В упрощенном виде мой код выглядит так. Тоесть ген...

1) в строке 21 async не нужен, ты же явно создаешь промис в строке 22 2) добавь catch к promise.all в строке 33, он сработает, когда сработает reject у одного из промисов в массиве

Владимир 61
screenshot В упрощенном виде мой код выглядит так. Тоесть ген...

3) promise.all не выполняет промисы, промис начинает выполнятся сразу после создания, прекратить выполнение созданного промиса невозможно

Promise.all только собирает результаты выполнения промисов, если не было ошибок.

Владимир-61 Автор вопроса
aleksey
1) в строке 21 async не нужен, ты же явно создаешь...

это упрощенный код, там именно асинхронный метод, я на это повлиять не могу

Владимир-61 Автор вопроса
aleksey
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"); } })();

Владимир-61 Автор вопроса
aleksey
Вот как-то так (async () => { try { for (let...

но по сути просто обернул в трай кэч а очередь промисов как бомбила так и будет продолжать бомбить? Можно как нить очередь бахнуть?

Владимир 61
но по сути просто обернул в трай кэч а очередь про...

не будет бомбить, при ошибке будет выход из цикла

Владимир-61 Автор вопроса
Владимир 61
я из твоего кода не вижу этого

если промис реджектится, то await дает ошибку, которая перехватывается try catch

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта