История изменений
Исправление vbr, (текущая версия) :
В MDN есть отличное описание всего API, связанного с веб-технологиями.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
В частности описание метода catch:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/catch
Результат catch это Promise, который либо fulfilled с возвращенным значением из функции, переданной в catch, либо rejected, если переданная функция выбросила исключение. Ну т.е. в случае пустой функции это будет fulfilled promise с undefined значением.
Вроде всё чётко и понятно.
Если вдруг не понимаешь этого момента - на один промис можно навешивать сколько угодно catch-ей и тд. И все они будут вызваны. Т.е. в данном случае мы навешиваем пустой catch только чтобы эту диагностику подавить, а в дальнейшем allSettled повесит свой обработчик рядом с нашим пустым, и это всё сработает как ожидается.
Бездумно чейнить вызовы не стоит, это да. Надо понимать, что где возвращается. Но блин, там API буквально из трёх методов состоит. И это можно сказать базовое API для современного JS. Можно один раз и прочитать.
Исходная версия vbr, :
В MDN есть отличное описание всего API, связанного с веб-технологиями.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
В частности описание метода catch:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/catch
Результат catch это Promise, который либо fulfilled с возвращенным значением из функции, переданной в catch, либо rejected, если переданная функция выбросила исключение. Ну т.е. в случае пустой функции это будет fulfilled promise с undefined значением.
Вроде всё чётко и понятно.