Update README.md

This commit is contained in:
Kirill Poddubnyi 2025-05-01 11:23:36 +02:00 committed by GitHub
parent 4912fbc48b
commit 5137bfc5ee
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1775,11 +1775,11 @@ class HttpRequester {
}
function makeAjaxCall<T>(url: string): Promise<T> {
// запит і повернення обіцянки
// запит і повернення промісу
}
function makeHttpCall<T>(url: string): Promise<T> {
// запит і повернення обіцянки
// запит і повернення промісу
}
```
@ -1798,7 +1798,7 @@ class AjaxAdapter extends Adapter {
}
async request<T>(url: string): Promise<T>{
// запит і повернення обіцянки
// запит і повернення промісу
}
// ...
@ -1810,7 +1810,7 @@ class NodeAdapter extends Adapter {
}
async request<T>(url: string): Promise<T>{
// запит і повернення обіцянки
// запит і повернення промісу
}
// ...
@ -2244,10 +2244,10 @@ describe('Calendar', () => {
## Асинхронність
### Перевага обіцянок (promises) перед зворотними викликами (callbacks)
### Перевага промісів (promises) перед зворотними викликами (callbacks)
Зворотні виклики не є чистими, і вони спричиняють надмірну кількість вкладеності *(пекло зворотних викликів)*.
Існують утиліти, які перетворюють існуючі функції, що використовують зворотні виклики, на версію, яка повертає обіцянки
Існують утиліти, які перетворюють існуючі функції, що використовують зворотні виклики, на версію, яка повертає проміси
(для Node.js див. [`util.promisify`](https://nodejs.org/dist/latest-v8.x/docs/api/util.html#util_util_promisify_original), для загального призначення див. [pify](https://www.npmjs.com/package/pify), [es6-promisify](https://www.npmjs.com/package/es6-promisify))
**Погано:**
@ -2300,22 +2300,22 @@ downloadPage('https://en.wikipedia.org/wiki/Robert_Cecil_Martin', 'article.html'
.catch(error => console.error(error));
```
Обіцянки підтримують кілька допоміжних методів, які допомагають зробити код більш стислим:
Проміси підтримують кілька допоміжних методів, які допомагають зробити код більш стислим:
| Шаблон | Опис |
| ------------------------ | ----------------------------------------- |
| `Promise.resolve(value)` | Перетворює значення в вирішену обіцянку. |
| `Promise.reject(error)` | Перетворює помилку в відхилену обіцянку. |
| `Promise.all(promises)` | Повертає нову обіцянку, яка виконується з масивом значень виконання для переданих обіцянок або відхиляється з причиною першої обіцянки, яка відхиляється. |
| `Promise.race(promises)`| Повертає нову обіцянку, яка виконується/відхиляється з результатом/помилкою першої врегульованої обіцянки з масиву переданих обіцянок. |
| `Promise.resolve(value)` | Перетворює значення в вирішений проміс. |
| `Promise.reject(error)` | Перетворює помилку в відхилений проміс. |
| `Promise.all(promises)` | Повертає новий проміс, який виконується з масивом значень виконання для переданих промісів або відхиляється з причиною першого промісу, яка відхиляється. |
| `Promise.race(promises)`| Повертає новий проміс, який виконується/відхиляється з результатом/помилкою першого врегульованого промісу з масиву переданих промісів. |
`Promise.all` особливо корисний, коли існує потреба запускати завдання паралельно. `Promise.race` полегшує реалізацію таких речей, як тайм-аути для обіцянок.
`Promise.all` особливо корисний, коли існує потреба запускати завдання паралельно. `Promise.race` полегшує реалізацію таких речей, як тайм-аути для промісів.
**[ повернутися до змісту](#зміст)**
### Async/Await ще чистіші за обіцянки
### Async/Await ще чистіші за проміси
З синтаксисом `async`/`await` ви можете писати код, який є набагато чистішим та зрозумілішим, ніж ланцюжки обіцянок. У функції з префіксом ключового слова `async` у вас є спосіб сказати середовищу виконання JavaScript призупинити виконання коду на ключовому слові `await` (коли воно використовується з обіцянкою).
З синтаксисом `async`/`await` ви можете писати код, який є набагато чистішим та зрозумілішим, ніж ланцюжки промісів. У функції з префіксом ключового слова `async` у вас є спосіб сказати середовищу виконання JavaScript призупинити виконання коду на ключовому слові `await` (коли воно використовується з промісом).
**Погано:**
@ -2368,10 +2368,10 @@ try {
### Завжди використовуйте Error для викидання чи відхилення
JavaScript, а також TypeScript дозволяють вам `throw` будь-який об'єкт. Обіцянка також може бути відхилена з будь-якою причиною об'єкта.
JavaScript, а також TypeScript дозволяють вам `throw` будь-який об'єкт. Проміс також може бути відхилено з будь-якою причиною об'єкта.
Рекомендується використовувати синтаксис `throw` з типом `Error`. Це тому, що ваша помилка може бути перехоплена у коді вищого рівня з синтаксисом `catch`.
Було б дуже заплутано перехопити там текстове повідомлення, і це зробило б [налагодження більш болісним](https://basarat.gitbook.io/typescript/type-system/exceptions#always-use-error).
З тієї ж причини ви повинні відхиляти обіцянки з типами `Error`.
З тієї ж причини ви повинні відхиляти проміси з типами `Error`.
**Погано:**
@ -2462,7 +2462,7 @@ try {
**[ повернутися до змісту](#зміст)**
### Не ігноруйте відхилені обіцянки
### Не ігноруйте відхилені проміси
З тієї ж причини ви не повинні ігнорувати перехоплені помилки з `try/catch`.