Middle
31
function any(promises) { // dein Code hier }
Unternehmen wurden gefragt
Яндекс
Antwort von AI
sobes.tech KI
javascript function any(promises) { return new Promise((resolve, reject) => { const errors = []; let rejectedCount = 0; let resolved = false;
promises.forEach((p, index) => {
Promise.resolve(p)
.then(value => {
if (!resolved) {
resolved = true;
resolve(value);
}
})
.catch(error => {
errors[index] = error;
rejectedCount++;
if (rejectedCount === promises.length) {
reject(new AggregateError(errors, 'No Promise in any was resolved'));
}
});
});
}); }
Эта реализация создаёт новый промис, который резолвится при первом успешном выполнении любого из переданных промисов. Если все промисы отклоняются, возвращается AggregateError с массивом ошибок в порядке исходного массива.