Ответ 1
Это большая тема. Мы провели несколько часов, обсуждая это в последние месяцы EmberNYC meetup. Если вы хотите понять promises, отличное место для начала будет проверяться:
- Domenic Denicola ввести в действие шаблону Promises в Javascript
- Стефан Пеннер говорит об использовании promises в приложениях Ember и Ember
- Является ли Ember RSVP таким же, как Tildeio RSVP? Если нет, то как они отличаются? Как они связаны?
В принципе то же самое. Tildeio RSVP - это место, где можно найти активную разработку RSVP. Ember RSVP - это копия этой библиотеки.
- Есть ли в JavaScript "Promise" разные вкусы, т.е. спецификации? Если это так, верно ли, что jQuery Promise использует один заданный тип спецификации Promise (что это такое?) И Ember RSVP.Promise использует другой набор спецификации Promise, а именно Promises/A +?
Конечно, это происходит в разных вкусах, не столько по дизайну, сколько в том, как развивались вещи. Promises/A + является одним из многих предлагаемых спецификаций обещаний и, кажется, имеет наибольшую тягу. Большинство реализаций Promises (включая RSVP) совместимы с Promises/A +, что означает, что они передают test-suite.
Я не верю, что реализация jQuery Promise имеет разные спецификации. Он почти-но не совсем соответствует Promises/A. По большей части они играют хорошо вместе. Есть пара краевых случаев, связанных с обработкой ошибок, где jQuery Promises может не вести себя так, как вы ожидали. Доменик подробно рассказывает об этом в своем выступлении, вы также можете найти информацию об этом в этом посте: что так замечательно в js promises
Как Ember RSVP Promise.then(), Tildeio RSVP Promise.then() и jQuery отложен. then() связаны?
Ember и Tildeio RSVP - это одно и то же. jQuery в основном то же самое, за исключением того, что:
"Если обработчик ошибок возвращает что-то иное, чем обещание, большинство реализаций рассматривают обработанную ошибку и не распространяют ее. Однако jQuery не рассматривает ошибку, обрабатываемую в этих случаях, и в любом случае распространяет ее вперед". - Что отличает нас от js promises