Skip to content

Commit

Permalink
Исправляет и дополняет доку Promise.any() (#5557)
Browse files Browse the repository at this point in the history
  • Loading branch information
vitya-ne authored Dec 1, 2024
1 parent adce6b9 commit 8b23cf8
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions js/promise-any/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ Promise.any([promise1, promise2])
})
```

В итоге обработчик `catch()` проигнорируется и выполнится код из обработчика ошибок `then()` со значением `1` в переменной `result`.
В итоге обработчик `catch()` проигнорируется и выполнится код из обработчика `then()` со значением `1` в переменной `result`.

**Все промисы завершились ошибкой**. Метод `Promise.any()` завершится с ошибкой, если все переданные промисы завершатся с ошибкой.

Expand All @@ -137,12 +137,15 @@ Promise.any([promise1, promise2])
.catch(error => {
console.error(error)
// AggregateError: All promises were rejected
console.log(error.errors)
// ['error1', 'error2']
})
```

В итоге обработчик `then()` проигнорируется и выполнится код из обработчика ошибок `catch()`.
В итоге обработчик `then()` проигнорируется и выполнится код из обработчика ошибок `catch()`. В этом случае `error` это экземпляр класса `AggregateError`. Объект `AggregateError` содержит ошибки от обоих промисов в массиве `errors`.
☝️ Порядок в массиве ошибок определяется очерёдностью промисов в исходной коллекции.

**Непромисы в массиве промисов**. Если в `Promise.any()` передать что-то помимо промисов, метод вернёт **первый** переданный аргумент любого типа в результат выполнения. Под капотом при этом произойдёт его преобразование с помощью метода `Promise.resolve()`.
**Непромисы в массиве промисов**. Если в `Promise.any()` передать что-то помимо промисов, метод вернёт промис, содержащий **первый** переданный аргумент любого типа как результат выполнения. Под капотом при этом произойдёт его преобразование с помощью метода `Promise.resolve()`.

Передадим в `Promise.any()` массив значений, которые не являются промисами:

Expand Down

0 comments on commit 8b23cf8

Please sign in to comment.