У меня есть несколько ожидающих функций:
public async func1(): Promise<ResultType1>();
public async func2(): Promise<ResultType2>();
Одна из них может вернуть undefined
:
public async func3(): Promise<ResultType3|undefined>();
(Весь код упрощен, и все производственные ошибки удалены для удобочитаемость).
Когда я использую Promise.all
в первых двух функциях, все хорошо:
const resultAll = await Promise.all([func1(), func2()];
// resultAll: [ResultType1, ResultType2]
Но когда я включаю func3
в массив обещаний ждать, вдруг ВСЕ возвращаемые значения могут быть undefined
:
const resultAll2 = await Promise.all([func1(), func2(), func3()]);
// resultAll: [ResultType1 | undefined, ResultType2 | undefined, ResultType3 | undefined]
Но я хочу получить значение типа [ResultType1, ResultType2, ResultType3 | undefined]
.
Почему это происходит и как этого избежать?