Вы можете объединить await
с Promise.all()
следующим образом:
async function() {
try {
const [a,b,c] = await Promise.all([fnA(), fnB(), fnC()]);
return(a + b + c);
}
catch(e) {
e.exitCode === 'fnAError' ? doSomething : null;
e.exitCode === 'fnBError' ? doSomething : null;
throw e;
}
}
Или вместо них можно использовать .then()
и .catch()
:
async function() {
return Promise.all([fnA(), fnB(), fnC()]).then(([a, b, c]) => {
return a + b + c;
}).catch(err => {
e.exitCode === 'fnAError' ? doSomething : null;
e.exitCode === 'fnBError' ? doSomething : null;
throw e;
});
}
Примечание , если вы пытаетесь вернуть измененный объект ошибки вызывающей стороне этой функции (все еще как отклонение), вам необходимо сбросить ошибку после ее изменения.