⇐ Назад

Оглавление

Предисловие. 10

Введение. 12
Задача. 13
О книге. 15
Типографские соглашения. 15
Использование программного кода примеров. 16
От издательства. 17
Глава 1. Асинхронность: сейчас и потом. 18
Блочное строение программы. 19
Асинхронный вывод в консоль. 22
Цикл событий. 23
Параллельные потоки. 26
Выполнение до завершения. 30
Параллельное выполнение. 33
Отсутствие взаимодействий. 36
Взаимодействия. 36
Кооперация. 42
Задания. 45
Упорядочение команд. 46
Итоги. 50
Глава 2. Обратные вызовы. 52
Продолжения. 53
Последовательное мышление. 55
Работа и планирование. 56
Вложенные/сцепленные обратные вызовы. 59
Проблемы доверия. 65
История о пяти обратных вызовах. 66
Не только в чужом коде. 69
Попытки спасти обратные вызовы. 71
Итоги. 76
Глава 3. Обещания. 78
Что такое обещание? . 79
Будущее значение. 80
Событие завершения. 86
События обещаний . 90
Утиная типизация с методом then()(thenable) . 93
Доверие Promise. 96
Слишком ранний обратный вызов . 97
Слишком поздний обратный вызов. 97
Обратный вызов вообще не вызывается. 100
Слишком малое или слишком большое количество
вызовов. 101
Отсутствие параметров/переменных среды . 102
Поглощение ошибок/исключений. 102
Обещания, заслуживающие доверия?. 104
Формирование доверия. 108
Сцепление . 109
Терминология: разрешение, выполнение и отказ. 118
Обработка ошибок . 121
Бездна отчаяния . 125
Обработка неперехваченных ошибок. 126
Бездна успеха. 128
Паттерны обещаний. 131
Promise.all([ .. ]). 131
Promise.race([ .. ]). 133
Вариации на тему all([ .. ]) и race([ .. ]) . 137
Параллельно выполняемые итерации. 139
Снова о Promise API . 140
Конструктор new Promise(..). 141
Promise.resolve(..) и Promise.reject(..). 141
then(..) и catch(..). 142

Наверх