Promise
Цель: получить представление об асинхронности и цикле событий (Event Loop), научиться пользоваться функциями обратного вызова, объектом Promise и его методами, а также синтаксисом async/await.
Содержание и порядок выполнения лабораторной работы:
- Изучить теорию связанную с асинхронностью, циклом событий, функциями обратного вызова, объектом Promise и его методами (.then() .catch() .finally() .all(), .any()) и синтаксисом async/await.
- Убедиться что установлен node.js. Инструкцию по установке и использованию можно найти в шаблоне лабораторной работы прошлого семестра.
- На CodeRun от Yandex зарегистрироваться в первом сезоне задач по фронтенду - https://coderun.yandex.ru/seasons/first_2023/tracks/frontend/catalog
- После регистрации в сезоне найти задачу 217. Асинхронное получение данных.
- Скачать предлагаемые файлы для разработки локально.
- Выработать решение задачи, финальный вариант проверить на платформе CodeRun.
- На защите необходимо показать количество попыток, рассказать как менялось ваше решение, какие гипотезы вы проверяли и ответить на вопросы. Чтобы не забыть вашу логику фиксируйте мысли в заметках.
Результаты выполнения лабораторной работы:
Решенная задача в сезоне на CodeRun.
Источники
- Асинхронное программирование в однопоточных средах JavaScript
- Асинхронность
- MDN: Асинхронность
- Функции обратного вызова
- Демо Event Loop
- Запись выступления про Event Loop
- Промисы
- Использование промисов
- Объект Promise и его методы: then, catch, finally
- async/await - doka.guide
- async/await - learn.javascript.ru
- Ад обратного вызова
Вопросы для защиты
- Что такое функция обратного вызова (callback)?
- Что такое асинхронность и почему приходится ее использовать в JS?
- Общий принцип работы event loop.
- Promise и его состояния.
- Методы объекта Promise. Примеры их использования.
- Как используется async/await?