Skip to content

Commit 29f3c10

Browse files
authored
Merge pull request #559 from ltlaitoff/fix-555
traslate(1-11-02): Translated paragraph in 1-js/11-async-02-promise-basics and checked on language errors
2 parents fc01cf7 + a2c6832 commit 29f3c10

File tree

1 file changed

+13
-13
lines changed

1 file changed

+13
-13
lines changed

1-js/11-async/02-promise-basics/article.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,17 @@
22

33
Уявіть, що ви топ співак, фани якого постійно дошкуляють запитаннями про майбутній сингл.
44

5-
Щоб отримати передишку, ви обіцяєте розіслати їм сингл, коли він буде випущений. Ви даєте своїм фанатам список. В який вони можуть записати свій e-mail, на який вони отримають пісню як тільки вона вийде. І навіть якщо щось піде не так, наприклад, в студії станеться пожежа і ви не зможете випустити пісню, вони і про це отримають сповіщення.
5+
Щоб отримати передишку, ви обіцяєте розіслати їм сингл, коли він буде випущений. Ви даєте своїм фанатам список. В який вони можуть записати свій e-mail, на який вони отримають пісню як тільки вона вийде. І навіть якщо щось піде не так, наприклад, в студії станеться пожежа і ви не зможете випустити пісню, вони й про це отримають сповіщення.
66

77
Всі щасливі: ви, тому що вам більше не дошкуляють, а фанати, тому що можуть більше не переживати що пропустять новий сингл.
88

99
Це аналогія з реального життя для ситуацій з якими ми часто стикаємось в програмуванні:
1010

1111
1. Є код–"виробник", котрий щось робить, що займає час. Наприклад, завантажує дані з мережі. Згідно з нашою аналогією це "співак".
12-
2. Є код–"споживач", котрий очікує отримати результат від коду-"виробника", як тільки той буде готовий. Цей результат може знадобитися багатьом функціям. Це -- "фанати"
13-
3. *Promise* (надалі будемо називати такий об’єкт промісом) -- це спеціальний об’єкт в JavaScript, котрий зв’язує код-"виробника" і "споживача" разом. В контексті нашої аналогії -- це "список підписки". Код-"виробник" виконується стільки часу, скільки потрібно щоб отримати результат, а проміс як тільки результат готовий, робить його доступним для коду який підписався на конкретний проміс.
12+
2. Є код–"споживач", котрий очікує отримати результат від коду-"виробника", як тільки той буде готовий. Цей результат може знадобитися багатьом функціям. Ці функції -- "фанати"
13+
3. *Promise* (надалі будемо називати такий об’єкт промісом) -- це спеціальний об’єкт в JavaScript, котрий зв’язує код-"виробника" і "споживача" разом. В контексті нашої аналогії -- це "список підписки". Код-"виробник" виконується стільки часу, скільки потрібно щоб отримати результат, а проміс -- як тільки результат готовий, робить його доступним для коду який підписався на конкретний проміс.
1414

15-
Аналогія не зовсім точна, оскільки реалізація промісів в JavaScript набагато складніша ніж простий список підписок: вони володіють додатковими можливостями і обмеженнями. Але для початку варто почати з простішого.
15+
Аналогія не зовсім точна, оскільки реалізація промісів в JavaScript набагато складніша ніж простий список підписок: вони володіють додатковими можливостями й обмеженнями. Але для початку варто почати з простішого.
1616

1717
Синтаксис створення проміса:
1818

@@ -99,7 +99,7 @@ let promise = new Promise(function(resolve, reject) {
9999
});
100100
```
101101
102-
Ідея в тому що функція виконавець може мати тільки один результат чи помилку.
102+
Ідея в тому, що функція виконавець може мати тільки один результат чи помилку.
103103
104104
Зверніть увагу, що методи `resolve`/`reject` можуть прийняти тільки один аргумент (або жодного), а всі додаткові аргументи будуть проігноровані.
105105
````
@@ -272,15 +272,15 @@ new Promise((resolve, reject) => {
272272
273273
3. Обробник `finally` також не повинен нічого повертати. Якщо все ж таки він щось повертає, це значення ігнорується.
274274
275-
Єдиним винятком із цього правила є випадки, коли обробник `finally` видає помилку. Бл потім ця помилка переходить до наступного обробника замість будь-якого попереднього результату проміса.
275+
Єдиним винятком із цього правила є випадки, коли обробник `finally` видає помилку. А потім ця помилка переходить до наступного обробника замість будь-якого попереднього результату проміса.
276276
277-
To summarize:
277+
У підсумку:
278278
279-
- A `finally` handler doesn't get the outcome of the previous handler (it has no arguments). This outcome is passed through instead, to the next suitable handler.
280-
- If a `finally` handler returns something, it's ignored.
281-
- When `finally` throws an error, then the execution goes to the nearest error handler.
279+
- Обробник `finally` не отримує результат попереднього обробника (у нього немає аргументів). Замість цього цей результат передається наступному відповідному обробнику.
280+
- Якщо обробник `finally` щось повертає, це буде ігноруватися.
281+
- Якщо виникає помилка в `finally`, виконання переходить до найближчого обробника помилок.
282282
283-
These features are helpful and make things work just the right way if we use `finally` how it's supposed to be used: for generic cleanup procedures.
283+
Ці особливості є корисними й забезпечують правильну роботу, якщо ми використовуємо `finally` так, як це передбачено: для загальних процедур очищення.
284284
285285
````smart header="На завершених промісах обробники запускаються одразу"
286286
Якщо проміс в стані очікування, `.then/catch/finally` будуть на нього чекати.
@@ -305,7 +305,7 @@ promise.then(alert); // виведе "завершено!"
305305

306306
Тепер, розгляньмо декілька прикладів з тим як проміси можуть облегшити нам написання асинхронного коду.
307307

308-
В нас є функція `loadScript` для завантаження скрипта з попереднього розділу.
308+
В нас є функція `loadScript` для завантаження скрипту з попереднього розділу.
309309

310310
Згадаймо як виглядає варіант з колбеком:
311311

@@ -323,7 +323,7 @@ function loadScript(src, callback) {
323323

324324
Тепер перепишемо її використавши проміс.
325325

326-
Новій функції `loadScript` більше не потрібен колбек. Замість цього вона буде створювати і повертати об’єкт проміса, котрий перейде в стан "успішно завершений", коли завантаження завершиться. Зовнішній код також може додавати обробників ("підписників") використовуючи `.then`:
326+
Новій функції `loadScript` більше не потрібен колбек. Замість цього вона буде створювати й повертати об’єкт проміса, котрий перейде в стан "успішно завершений", коли завантаження завершиться. Зовнішній код також може додавати обробників ("підписників") використовуючи `.then`:
327327

328328
```js run
329329
function loadScript(src) {

0 commit comments

Comments
 (0)