При работе с объектом Promise
в JavaScript я заметил два метода: Promise.all()
и Promise.any()
.
Оба они принимают итерируемый объект (например, array
) в качестве параметра. Однако я не могу найти, что каждый метод делает по-разному.
После поиска на МДН все еще было трудно найти сводку различий между двумя методами.
В заключение, в чем разница между Promise.all()
и Promise.any()
в JavaScript?
Примечание: Этот вопрос не относится к этот вопрос. Вместо Promise.race()
я спрашиваю о Promise.all()
.
Promise.all
разрешается только тогда, когда все Promise
в переданном массиве разрешены, и возвращает массив разрешенных Promise
. Если какой-либо Promise
внутри итератора отклоняется, Promise.all
отклоняется (я предполагаю, что по причине исходного отклонения).
Promise.any
разрешается, когда передается любой Promise
в массиве, и возвращает первый Promise
для этого. Он не отклоняется, если все Promise
в итераторе не отклонены.
Promise.all — разрешает все промисы, переданные как итерируемый объект. Он также полностью отклоняется, когда входное значение отклоняется, поскольку оно следует за методология «все или ничего».
Promise.any — принимает итерацию объектов Promise и, как только одно из обещаний в итерации выполняется, возвращает одно обещание, которое разрешается со значением из этого обещания.