mirror of
https://github.com/labs42io/clean-code-typescript.git
synced 2025-05-11 04:43:31 +00:00
Update README.md
This commit is contained in:
parent
4912fbc48b
commit
5137bfc5ee
1 changed files with 17 additions and 17 deletions
34
README.md
34
README.md
|
@ -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`.
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue