Ну, проблема не в том, что Promise.all()
принимает ноль, это не так.Он принимает массивы типа [null]
или [undefined]
(на самом деле это две разные вещи)
Как я уже упоминал в моих комментариях, тестирование Promise.all()
- это не то, что я хотел бы сделать, этосторонний код, вы должны тестировать свой собственный, поэтому я думаю, что проверка на наличие ошибок для таких ошибок является гораздо лучшим решением
При этом вы имеете право на свое мнение, я просто укажу навозможность достижения того, что вы хотите.То есть: исправление обезьяны
Вы можете перезаписать Promise.all()
следующим образом:
let originalAll = Promise.all;
Promise.all = (promises) => {
// you could check several other things
// but this covers what you wanted, right?
let isArrayWithBlanks = promises.includes(null) || promises.includes(undefined);
return isArrayWithBlanks
? Promise.reject("NO!")
: originalAll(promises);
};
Теперь вы можете легко написать тест, если вы используете эту исправленную обезьяну Promise.all
на протяжении всего вашего проекта.Вы сами решаете, где разместить этот код
Надеюсь, это поможет