Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Исправляет и дополняет доку Promise.any() #5557

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 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,14 @@ Promise.any([promise1, promise2])
.catch(error => {
console.error(error)
// AggregateError: All promises were rejected
console.log(error.errors)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Супер! Теперь прозрачно и понятно :)

// ['error1', 'error2']
})
```

В итоге обработчик `then()` проигнорируется и выполнится код из обработчика ошибок `catch()`.
В итоге обработчик `then()` проигнорируется и выполнится код из обработчика ошибок `catch()`. В этом случае `error` будет экземпляром `AggregateError` и содержать массив ошибок от обоих промисов в поле `errors`.
vitya-ne marked this conversation as resolved.
Show resolved Hide resolved

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

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

Expand Down
Loading