В JavaScript мы можем наследовать только один объект. Для объекта может быть только один [[Прототип]]. И класс может расширять только один другой класс.
Как бы мы ни были хороши в программировании, иногда в наших скриптах есть ошибки. Они могут возникнуть из-за наших ошибок, неожиданного ввода пользователя, ошибочного ответа сервера и по тысяче других причин.
Когда мы что-то разрабатываем, нам часто нужны собственные классы ошибок, чтобы отражать конкретные вещи, которые могут пойти не так в наших задачах. Для ошибок в сетевых операциях нам может понадобиться HttpError, для операций с базой данных DbError, для
В данной статье рассматривается очень узконаправленная тема, с которой большинство разработчиков крайне редко сталкиваются на практике (и могут даже не подозревать о ее существовании).
Вернемся к проблеме, упомянутой в главе «Введение»: обратные вызовы: у нас есть последовательность асинхронных задач, которые необходимо выполнить одна за другой — например, загрузка скриптов. Как мы можем это хорошо закодировать?
Цепочки обещаний отлично справляются с обработкой ошибок. Когда обещание отклоняется, элемент управления переходит к ближайшему обработчику отклонения. Это очень удобно на практике.