ДЖО КРЕЙН-МЕССИНА

Асинхронные кошмары, пирамида гибели, иерархия вложенных обратных вызовов, поток управления: если вы знакомы с любым из этих терминов, вы должны быть знакомы с обещаниями JavaScript.

По мере того, как веб-приложения становятся все более изощренными, а использование JavaScript на сервере продолжает расти, возрастает потребность в усовершенствованном способе управления потоком данных. Иногда вы сталкиваетесь с обратными вызовами внутри обратных вызовов внутри обратных вызовов внутри обратных вызовов (внутри обратных вызовов). В других случаях у вас может быть сложная бизнес-логика, запутывающая ваш код. Какой бы ни была ваша головоломка, вы можете использовать промисы, чтобы упростить код и сделать его более устойчивым.

Промисы (также называемые отложенными или, что еще более запутанно, фьючерсами) — это подход в JavaScript, при котором поток передается объекту, который в конечном итоге либо отклоняется (сбой), либо разрешается (успех). Любой код, ожидающий обещания, может продолжить работу в зависимости от результата.

Техника развивалась в течение последних нескольких лет, и было введено несколько библиотек. jQuery реализовал Promises в версии 1.5 (январь 2011 г.), но большинство экспертов советуют вам использовать библиотеку типа Q, RSVP.js или when.js, даже если вы уже используете jQuery. (реализация jQuery не оптимальна.)

Доменик Деникола, один из авторов спецификации Promises/A+, посетил The Times, чтобы обсудить свою работу, и мы хотели бы поделиться с вами его выступлением.

Помимо того, что он очень умный, Деникола еще и очень хороший парень. Он целыми днями работает в Lab49, и его часто можно застать выступающим на вашей любимой JavaScript-конференции. (На недавней конференции HTML5Dev Conf он выступил с воодушевляющим опровержением RequireJS в пользу CommonJS.)