Event Loop
javascript
1console.log('1');2setTimeout(() => console.log('2'), 0);3Promise.resolve().then(() => console.log('3'));4console.log('4');5// Вывод: 1, 4, 3, 2
Microtasks vs Macrotasks
Microtasks (Promise) выполняются ПЕРЕД следующим macrotask.
AbortController
javascript
1const controller = new AbortController();2fetch('/api', { signal: controller.signal })3 .catch(err => {4 if (err.name === 'AbortError') console.log('Отменено');5 });6controller.abort();
Async Iterator
javascript
1async function* fetchPages(url) {2 let page = 1;3 while (true) {4 const res = await fetch(`${url}?page=${page}`);5 const data = await res.json();6 if (!data.length) break;7 yield data;8 page++;9 }10}
Заключение
Понимание асинхронности — ключ к эффективной работе с JavaScript.
Изучите вопросы по JavaScript в нашем разделе.