Skip to content

Commit c8a47f2

Browse files
committed
docs: add missing text
1 parent 9e3f3ba commit c8a47f2

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

1-js/11-async/01-callbacks/article.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ newFunction(); // немає такої функції!
6060
*/!*
6161
```
6262

63-
Природно, браузер, ймовірно, не встиг завантажити скрипт. На даний момент функція `loadScript` не надає можливості відстежувати завершення завантаження. Скрипт просто завантажується та зрештою запускається, це й все. Але ми хотіли б знати коли це станеться, щоб могти після цього використовувати нові функції та змінні з цього скрипту.
63+
Природно, браузер, ймовірно, не встиг завантажити скрипт. Зараз функція `loadScript` не надає можливості відстежувати завершення завантаження. Скрипт просто завантажується та зрештою запускається, це й все. Але ми хотіли б знати коли це станеться, щоб могти після цього використовувати нові функції та змінні з цього скрипту.
6464

6565
Додаймо `callback`-функцію як другий аргумент до `loadScript`, яка має виконуватися, коли скрипт завантажується:
6666

@@ -230,10 +230,18 @@ loadScript('1.js', function(error, script) {
230230
});
231231
```
232232

233+
У коді вище:
234+
233235
1. Завантажуємо `1.js`, продовжуємо, якщо немає помилки...
234236
2. Завантажуємо `2.js`, продовжуємо, якщо немає помилки...
235237
3. Ми завантажуємо `3.js`, продовжуємо, якщо немає помилки -- робимо щось інше `(*)`.
236238

239+
З кожним послідовним колбеком, код стає більш вкладеним і його дедалі важче підтримувати, особливо якщо у нас справжній код замість `...`, який може включати більше циклів, умовних операторів тощо.
240+
241+
Це іноді називають "callback hell" (з англ. колбек-пеклом) або "pyramid of doom" (з англ. пекельною пірамідою).
242+
243+
<!--
244+
loadScript('1.js', function(error, script) {
237245
if (error) {
238246
handleError(error);
239247
} else {
@@ -298,7 +306,7 @@ function step3(error, script) {
298306

299307
Це працює, але код виглядає розірваним на частини. Його важко читати, і ви, напевно, помітили, що під час читання потрібно стрибати між частинами. Це незручно, особливо якщо читач не знайомий з кодом і не знає, що за чим слідує.
300308

301-
Крім того, всі функції під назвою `step*` призначені для одноразового використання, вони створені лише для того, щоб уникнути "пекельної піраміди". Ніхто не збирається використовувати їх повторно за межами ланцюжка дій. Таким чином, тут є деяке нагромадження в просторі імен.
309+
Крім того, всі функції під назвою `step*` призначені для одноразового використання, вони створені лише для того, щоб уникнути "пекельної піраміди". Ніхто не збирається використовувати їх повторно за межами ланцюжка дій. Таким чином, тут є деяке нагромадження у просторі імен.
302310

303311
Ми б хотіли мати щось краще.
304312

0 commit comments

Comments
 (0)