Как вы упомянули, если вы хотите по отдельности работать с разными обещаниями, вы можете просто заключить их в отдельный блок try/catch
.
let result1 = []; // for simplicity
try {
result1 = await getPromise1()
} catch (error) {
console.log(`Error occured: ${error}`);
// fallback
result1 = someComplicatedOperationHere();
}
Вы можете использовать аналогичный подход кдругие n
обещания, которые у вас есть, и, наконец, у вас будет result1 .. resultN
, содержащий что-то.Либо успешный результат, либо запасной вариант (или как вы хотите его обработать).
Однако учтите, что если вы используете await и у вас несколько разных вызовов обещаний, они будут синхронно выбираться для вашего приложения.Значение: они будут (a)wait
для первого обещания вернуться и затем двигаться дальше.
Если вы не хотите этого, вам придется использовать Promise.all
.(Классическая await in for loop
своего рода проблема.)