0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>JavaScript - язык, созданный для выполнения на клиентской стороне. Это сильно повлияло не только на устройство самого языка, но и на то, как устроены его среды исполнения: браузеры, Node.js и другие. Браузер заточен под так называемую<strong>событийную модель</strong>, когда код не исполняется непрерывно, а ожидает пользовательских событий: нажатий на кнопки, кликов мышкой или скроллинга. Каждое из этих (и десятка других) событий запускает нужный обработчик, причём к нему предъявляются особые требования: он не должен блокировать работу, так как на одно событие может выполняться много задач (практически параллельно), и при этом пользователь должен иметь возможность продолжать взаимодействовать с интерфейсом.</p>
1
<p>JavaScript - язык, созданный для выполнения на клиентской стороне. Это сильно повлияло не только на устройство самого языка, но и на то, как устроены его среды исполнения: браузеры, Node.js и другие. Браузер заточен под так называемую<strong>событийную модель</strong>, когда код не исполняется непрерывно, а ожидает пользовательских событий: нажатий на кнопки, кликов мышкой или скроллинга. Каждое из этих (и десятка других) событий запускает нужный обработчик, причём к нему предъявляются особые требования: он не должен блокировать работу, так как на одно событие может выполняться много задач (практически параллельно), и при этом пользователь должен иметь возможность продолжать взаимодействовать с интерфейсом.</p>
2
<p>По этим причинам все движки (исполнители js-кода) построены по асинхронной модели. Любые операции ввода/вывода (например, выполнение Ajax-запросов) выполняются асинхронно. Асинхронный код устроен совершенно отлично от синхронного и требует времени на привыкание. У него другой способ обработки ошибок и, в целом, другие подходы при написании кода. Добавляя одни возможности, он создает проблемы в других местах: то, что легко делалось в синхронном коде, становится сложным в асинхронном. Это цена за производительность.</p>
2
<p>По этим причинам все движки (исполнители js-кода) построены по асинхронной модели. Любые операции ввода/вывода (например, выполнение Ajax-запросов) выполняются асинхронно. Асинхронный код устроен совершенно отлично от синхронного и требует времени на привыкание. У него другой способ обработки ошибок и, в целом, другие подходы при написании кода. Добавляя одни возможности, он создает проблемы в других местах: то, что легко делалось в синхронном коде, становится сложным в асинхронном. Это цена за производительность.</p>
3
<p>Асинхронное программирование в JavaScript прошло несколько стадий: от<strong>колбеков</strong>, через<strong>промисы</strong>и до концепции<strong>async/await</strong>. Все эти подходы по-своему важны и рассматриваются в данном курсе. В конце вы узнаете и научитесь писать современный, эффективный и понятный код, обладающий преимуществами асинхронного кода и почти не уступающий синхронному в понятности и простоте.</p>
3
<p>Асинхронное программирование в JavaScript прошло несколько стадий: от<strong>колбеков</strong>, через<strong>промисы</strong>и до концепции<strong>async/await</strong>. Все эти подходы по-своему важны и рассматриваются в данном курсе. В конце вы узнаете и научитесь писать современный, эффективный и понятный код, обладающий преимуществами асинхронного кода и почти не уступающий синхронному в понятности и простоте.</p>
4
<p>Основные темы данного курса:</p>
4
<p>Основные темы данного курса:</p>
5
<ul><li>Асинхронный IO</li>
5
<ul><li>Асинхронный IO</li>
6
<li>Обработка ошибок</li>
6
<li>Обработка ошибок</li>
7
<li>Event Loop</li>
7
<li>Event Loop</li>
8
<li>Таймеры</li>
8
<li>Таймеры</li>
9
<li>Промисы</li>
9
<li>Промисы</li>
10
<li>Async/Await</li>
10
<li>Async/Await</li>
11
<li>EventEmitter</li>
11
<li>EventEmitter</li>
12
</ul>
12
</ul>