|
4 | 4 |
|
5 | 5 | ## [Асинхронное программирование в Node.js и JavaScript](https://youtu.be/hY6Z6qNYzmc)
|
6 | 6 |
|
7 |
| -- [5:45 Callbacks](https://youtu.be/hY6Z6qNYzmc?t=345) |
8 |
| -- [10:00 Async.js or analogues](https://youtu.be/hY6Z6qNYzmc?t=600) |
9 |
| -- [15:47 Events](https://youtu.be/hY6Z6qNYzmc?t=947) |
10 |
| -- [18:00 Promise](https://youtu.be/hY6Z6qNYzmc?t=1080) |
11 |
| -- [25:20 async/await](https://youtu.be/hY6Z6qNYzmc?t=1520) |
12 |
| -- [27:10 Functor + Chaining + composition](https://youtu.be/hY6Z6qNYzmc?t=1630) |
13 |
| -- [30:49 Problems of callback, async.js, Proimise, async/await](https://youtu.be/hY6Z6qNYzmc?t=1849) |
14 |
| -- [34:00 Add timeout to any function](https://youtu.be/hY6Z6qNYzmc?t=2040) |
15 |
| -- [36:55 Make function cancelable](https://youtu.be/hY6Z6qNYzmc?t=2215) |
16 |
| -- [37:59 More wrappers](https://youtu.be/hY6Z6qNYzmc?t=2279) |
17 |
| -- [39:22 Promisify and Callbackify](https://youtu.be/hY6Z6qNYzmc?t=2362) |
18 |
| -- [48:47 Sync function to async](https://youtu.be/hY6Z6qNYzmc?t=2927) |
19 |
| -- [41:43 Sync function to Promise](https://youtu.be/hY6Z6qNYzmc?t=2503) |
20 |
| -- [43:17 Convertors](https://youtu.be/hY6Z6qNYzmc?t=2597) |
21 |
| -- [43:31 Metasync](https://youtu.be/hY6Z6qNYzmc?t=2611) |
22 |
| -- [45:26 Function composition](https://youtu.be/hY6Z6qNYzmc?t=2726) |
23 |
| -- [47:09 Asynchronous function composition](https://youtu.be/hY6Z6qNYzmc?t=2829) |
24 |
| -- [47:58 Flow communication like in electronics](https://youtu.be/hY6Z6qNYzmc?t=2878) |
25 |
| -- [50:06 Collectors](https://youtu.be/hY6Z6qNYzmc?t=3006) |
26 |
| -- [59:17 Queue](https://youtu.be/hY6Z6qNYzmc?t=3557) |
| 7 | +- [05:45 Callbacks](https://youtu.be/hY6Z6qNYzmc?t=345) |
| 8 | +- [10:00 Async.js or analogues](https://youtu.be/hY6Z6qNYzmc?t=600) |
| 9 | +- [15:47 Events](https://youtu.be/hY6Z6qNYzmc?t=947) |
| 10 | +- [18:00 Promise](https://youtu.be/hY6Z6qNYzmc?t=1080) |
| 11 | +- [25:20 async/await](https://youtu.be/hY6Z6qNYzmc?t=1520) |
| 12 | +- [27:10 Functor + Chaining + composition](https://youtu.be/hY6Z6qNYzmc?t=1630) |
| 13 | +- [30:49 Problems of callback, async.js, Proimise, async/await](https://youtu.be/hY6Z6qNYzmc?t=1849) |
| 14 | +- [34:00 Add timeout to any function](https://youtu.be/hY6Z6qNYzmc?t=2040) |
| 15 | +- [36:55 Make function cancelable](https://youtu.be/hY6Z6qNYzmc?t=2215) |
| 16 | +- [37:59 More wrappers](https://youtu.be/hY6Z6qNYzmc?t=2279) |
| 17 | +- [39:22 Promisify and Callbackify](https://youtu.be/hY6Z6qNYzmc?t=2362) |
| 18 | +- [48:47 Sync function to async](https://youtu.be/hY6Z6qNYzmc?t=2927) |
| 19 | +- [41:43 Sync function to Promise](https://youtu.be/hY6Z6qNYzmc?t=2503) |
| 20 | +- [43:17 Convertors](https://youtu.be/hY6Z6qNYzmc?t=2597) |
| 21 | +- [43:31 Metasync](https://youtu.be/hY6Z6qNYzmc?t=2611) |
| 22 | +- [45:26 Function composition](https://youtu.be/hY6Z6qNYzmc?t=2726) |
| 23 | +- [47:09 Asynchronous function composition](https://youtu.be/hY6Z6qNYzmc?t=2829) |
| 24 | +- [47:58 Flow communication like in electronics](https://youtu.be/hY6Z6qNYzmc?t=2878) |
| 25 | +- [50:06 Collectors](https://youtu.be/hY6Z6qNYzmc?t=3006) |
| 26 | +- [59:17 Queue](https://youtu.be/hY6Z6qNYzmc?t=3557) |
27 | 27 |
|
28 | 28 | ## [Таймеры, таймауты, EventEmitter в JavaScript и Node.js](https://youtu.be/LK2jveAnRNg)
|
29 | 29 |
|
30 |
| -- [0:30 callback sync/async](https://youtu.be/LK2jveAnRNg?t=30) |
31 |
| -- [1:35 временная задержка sleep.js](https://youtu.be/LK2jveAnRNg?t=95) |
32 |
| -- [5:35 await-sleep.js](https://youtu.be/LK2jveAnRNg?t=335) |
33 |
| -- [8:40 sleep-then.js](https://youtu.be/LK2jveAnRNg?t=520) |
34 |
| -- [9:30 order.js](https://youtu.be/LK2jveAnRNg?t=570) |
35 |
| -- [18:38 precision.js](https://youtu.be/LK2jveAnRNg?t=1118) |
36 |
| -- [22:13 blocking.js](https://youtu.be/LK2jveAnRNg?t=1333) |
37 |
| -- [22:50 timers.js](https://youtu.be/LK2jveAnRNg?t=1370) |
38 |
| -- [29:35 ref-unref.js](https://youtu.be/LK2jveAnRNg?t=1775) |
39 |
| -- [32:05 enroll.js](https://youtu.be/LK2jveAnRNg?t=1925) |
40 |
| -- [34:57 eventloop.txt](https://youtu.be/LK2jveAnRNg?t=2097) |
41 |
| -- [37:37 eventEmitter](https://youtu.be/LK2jveAnRNg?t=2257) |
42 |
| -- [44:32 simple.js](https://youtu.be/LK2jveAnRNg?t=2672) |
43 |
| -- [47:48 usage.js](https://youtu.be/LK2jveAnRNg?t=2868) |
44 |
| -- [48:30 enhanced.js](https://youtu.be/LK2jveAnRNg?t=2910) |
45 |
| -- [50:18 star-fix.js](https://youtu.be/LK2jveAnRNg?t=3018) |
46 |
| -- [51:10 usage.js](https://youtu.be/LK2jveAnRNg?t=3070) |
47 |
| -- [53:15 closure.js](https://youtu.be/LK2jveAnRNg?t=3195) |
48 |
| -- [54:50 fp.js](https://youtu.be/LK2jveAnRNg?t=3290) |
49 |
| -- [57:10 methods.js](https://youtu.be/LK2jveAnRNg?t=3430) |
50 |
| -- [1:06:35 min.js](https://youtu.be/LK2jveAnRNg?t=3995) |
51 |
| -- [1:12:31 prod.js](https://youtu.be/LK2jveAnRNg?t=4351) |
| 30 | +- [00:30 callback sync/async](https://youtu.be/LK2jveAnRNg?t=30) |
| 31 | +- [01:35 временная задержка sleep.js](https://youtu.be/LK2jveAnRNg?t=95) |
| 32 | +- [05:35 await-sleep.js](https://youtu.be/LK2jveAnRNg?t=335) |
| 33 | +- [08:40 sleep-then.js](https://youtu.be/LK2jveAnRNg?t=520) |
| 34 | +- [09:30 order.js](https://youtu.be/LK2jveAnRNg?t=570) |
| 35 | +- [18:38 precision.js](https://youtu.be/LK2jveAnRNg?t=1118) |
| 36 | +- [22:13 blocking.js](https://youtu.be/LK2jveAnRNg?t=1333) |
| 37 | +- [22:50 timers.js](https://youtu.be/LK2jveAnRNg?t=1370) |
| 38 | +- [29:35 ref-unref.js](https://youtu.be/LK2jveAnRNg?t=1775) |
| 39 | +- [32:05 enroll.js](https://youtu.be/LK2jveAnRNg?t=1925) |
| 40 | +- [34:57 eventloop.txt](https://youtu.be/LK2jveAnRNg?t=2097) |
| 41 | +- [37:37 eventEmitter](https://youtu.be/LK2jveAnRNg?t=2257) |
| 42 | +- [44:32 simple.js](https://youtu.be/LK2jveAnRNg?t=2672) |
| 43 | +- [47:48 usage.js](https://youtu.be/LK2jveAnRNg?t=2868) |
| 44 | +- [48:30 enhanced.js](https://youtu.be/LK2jveAnRNg?t=2910) |
| 45 | +- [50:18 star-fix.js](https://youtu.be/LK2jveAnRNg?t=3018) |
| 46 | +- [51:10 usage.js](https://youtu.be/LK2jveAnRNg?t=3070) |
| 47 | +- [53:15 closure.js](https://youtu.be/LK2jveAnRNg?t=3195) |
| 48 | +- [54:50 fp.js](https://youtu.be/LK2jveAnRNg?t=3290) |
| 49 | +- [57:10 methods.js](https://youtu.be/LK2jveAnRNg?t=3430) |
| 50 | +- [1:06:35 min.js](https://youtu.be/LK2jveAnRNg?t=3995) |
| 51 | +- [1:12:31 prod.js](https://youtu.be/LK2jveAnRNg?t=4351) |
52 | 52 |
|
53 | 53 | ## [Асинхронное программирование на callback`ах в JavaScript](https://youtu.be/z8Hg6zgi3yQ)
|
54 | 54 |
|
55 |
| -- [1:20 пример callback функции](https://youtu.be/z8Hg6zgi3yQ?t=80) |
56 |
| -- [2:40 пример последовательного исполнения callback функций](https://youtu.be/z8Hg6zgi3yQ?t=160) |
57 |
| -- [5:52 пример параллельного исполнения async функций c использованием wrapAsync](https://youtu.be/z8Hg6zgi3yQ?t=352) |
58 |
| -- [15:18 пример последовательного исполнения async функций c использованием wrapAsync](https://youtu.be/z8Hg6zgi3yQ?t=918) |
59 |
| -- [19:05 chain исполнение async функций](https://youtu.be/z8Hg6zgi3yQ?t=1145) |
60 |
| -- [41:16 где можно встретить асинхронные функции](https://youtu.be/z8Hg6zgi3yQ?t=2476) |
| 55 | +- [01:20 пример callback функции](https://youtu.be/z8Hg6zgi3yQ?t=80) |
| 56 | +- [02:40 пример последовательного исполнения callback функций](https://youtu.be/z8Hg6zgi3yQ?t=160) |
| 57 | +- [05:52 пример параллельного исполнения async функций c использованием wrapAsync](https://youtu.be/z8Hg6zgi3yQ?t=352) |
| 58 | +- [15:18 пример последовательного исполнения async функций c использованием wrapAsync](https://youtu.be/z8Hg6zgi3yQ?t=918) |
| 59 | +- [19:05 chain исполнение async функций](https://youtu.be/z8Hg6zgi3yQ?t=1145) |
| 60 | +- [41:16 где можно встретить асинхронные функции](https://youtu.be/z8Hg6zgi3yQ?t=2476) |
61 | 61 |
|
62 | 62 | ## [Неблокирующее асинхронное итерирование в JavaScript](https://youtu.be/wYA2cIRYLoA)
|
63 | 63 |
|
64 |
| -- [1:02 блокирующее итерирование по массиву](https://youtu.be/wYA2cIRYLoA?t=62) |
65 |
| -- [3:24 блокирующее итерирование с помощью for await](https://youtu.be/wYA2cIRYLoA?t=204) |
66 |
| -- [4:47 неблокирующее итерирование с помощью setTimeout](https://youtu.be/wYA2cIRYLoA?t=287) |
67 |
| -- [6:45 неблокирующее итерирование с помощью for await](https://youtu.be/wYA2cIRYLoA?t=405) |
68 |
| -- [8:20 неблокирующее итерирование без задержки](https://youtu.be/wYA2cIRYLoA?t=500) |
69 |
| -- [13:00 неблокирующее итерирование без задержки с помощью for await](https://youtu.be/wYA2cIRYLoA?t=780) |
70 |
| -- [19:30 использование асинхронного итерирования для обычных массивов](https://youtu.be/wYA2cIRYLoA?t=1170) |
| 64 | +- [01:02 блокирующее итерирование по массиву](https://youtu.be/wYA2cIRYLoA?t=62) |
| 65 | +- [03:24 блокирующее итерирование с помощью for await](https://youtu.be/wYA2cIRYLoA?t=204) |
| 66 | +- [04:47 неблокирующее итерирование с помощью setTimeout](https://youtu.be/wYA2cIRYLoA?t=287) |
| 67 | +- [06:45 неблокирующее итерирование с помощью for await](https://youtu.be/wYA2cIRYLoA?t=405) |
| 68 | +- [08:20 неблокирующее итерирование без задержки](https://youtu.be/wYA2cIRYLoA?t=500) |
| 69 | +- [13:00 неблокирующее итерирование без задержки с помощью for await](https://youtu.be/wYA2cIRYLoA?t=780) |
| 70 | +- [19:30 использование асинхронного итерирования для обычных массивов](https://youtu.be/wYA2cIRYLoA?t=1170) |
71 | 71 |
|
72 | 72 | ## [Асинхронность с библиотекой async.js](https://youtu.be/XQ94wQc-erU)
|
73 | 73 |
|
|
85 | 85 |
|
86 | 86 | ## [Генераторы и асинхронные генераторы в JavaScript](https://youtu.be/kvNm9D32s8s)
|
87 | 87 |
|
88 |
| -- [00:00 Способы объявления генераторов ](https://youtu.be/kvNm9D32s8s?t=0) |
89 |
| -- [10:41 Пример генератора с yield ](https://youtu.be/kvNm9D32s8s?t=641) |
90 |
| -- [15:54 Пример генератора с yield и return ](https://youtu.be/kvNm9D32s8s?t=954) |
91 |
| -- [18:47 Получение значений из генератора циклом for...of ](https://youtu.be/kvNm9D32s8s?t=1127) |
92 |
| -- [21:04 Получение значений из генератора spead - оператором ](https://youtu.be/kvNm9D32s8s?t=1264) |
93 |
| -- [21:50 Метод next ](https://youtu.be/kvNm9D32s8s?t=1310) |
94 |
| -- [23:30 Пример генератора с yield * возвращающего итерируемые объекты ](https://youtu.be/kvNm9D32s8s?t=1410) |
95 |
| -- [25:05 Пример генератора с yield * возвращающего другие генераторы ](https://youtu.be/kvNm9D32s8s?t=1505) |
96 |
| -- [26:18 Метод return ](https://youtu.be/kvNm9D32s8s?t=1578) |
97 |
| -- [28:11 Метод throw](https://youtu.be/kvNm9D32s8s?t=1691) |
98 |
| -- [29:05 Обобщение](https://youtu.be/kvNm9D32s8s?t=1745) |
| 88 | +- [00:00 Способы объявления генераторов](https://youtu.be/kvNm9D32s8s?t=0) |
| 89 | +- [10:41 Пример генератора с yield](https://youtu.be/kvNm9D32s8s?t=641) |
| 90 | +- [15:54 Пример генератора с yield и return](https://youtu.be/kvNm9D32s8s?t=954) |
| 91 | +- [18:47 Получение значений из генератора циклом for...of](https://youtu.be/kvNm9D32s8s?t=1127) |
| 92 | +- [21:04 Получение значений из генератора spead - оператором](https://youtu.be/kvNm9D32s8s?t=1264) |
| 93 | +- [21:50 Метод next](https://youtu.be/kvNm9D32s8s?t=1310) |
| 94 | +- [23:30 Пример генератора с yield * возвращающего итерируемые объекты](https://youtu.be/kvNm9D32s8s?t=1410) |
| 95 | +- [25:05 Пример генератора с yield * возвращающего другие генераторы](https://youtu.be/kvNm9D32s8s?t=1505) |
| 96 | +- [26:18 Метод return](https://youtu.be/kvNm9D32s8s?t=1578) |
| 97 | +- [28:11 Метод throw](https://youtu.be/kvNm9D32s8s?t=1691) |
| 98 | +- [29:05 Обобщение](https://youtu.be/kvNm9D32s8s?t=1745) |
99 | 99 |
|
100 | 100 | ## [Итераторы и асинхронные итераторы в JavaScript](https://youtu.be/rBGFlWpVpGs)
|
101 | 101 |
|
|
0 commit comments