diff --git a/js/promise-any/index.md b/js/promise-any/index.md index 2fe19c4a2c..746fe896be 100644 --- a/js/promise-any/index.md +++ b/js/promise-any/index.md @@ -118,7 +118,7 @@ Promise.any([promise1, promise2]) }) ``` -В итоге обработчик `catch()` проигнорируется и выполнится код из обработчика ошибок `then()` со значением `1` в переменной `result`. +В итоге обработчик `catch()` проигнорируется и выполнится код из обработчика `then()` со значением `1` в переменной `result`. **Все промисы завершились ошибкой**. Метод `Promise.any()` завершится с ошибкой, если все переданные промисы завершатся с ошибкой. @@ -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()` массив значений, которые не являются промисами: