Это большая тема. Мы потратили несколько часов, обсуждая это на EmberNYC Meetingup в прошлом месяце. Если вы хотите понять промисы, отличным местом для начала будет проверка:
- Является ли RSVP Ember таким же, как RSVP Tildeio? Если нет, то чем они отличаются? Как они связаны?
В основном то же самое. RSVP Tildeio — это место, где можно найти активное развитие RSVP. Ember RSVP является копией этой библиотеки.
- Есть ли в JavaScript «Promise» разные варианты, т. е. спецификации? Если да, то правда ли, что jQuery Promise использует один набор спецификаций Promise (что это такое?), а Ember RSVP.Promise использует другой набор спецификаций Promise, а именно Promises/A+?
Конечно, он бывает разных вкусов, не столько по дизайну, сколько по тому, как все развивалось. Promises/A+ является одним из многих предлагаемые спецификации обещаний и, кажется, имеют наибольшую поддержку. Большинство реализаций обещаний (включая RSVP) совместимы с Promises/A+, что означает, что они проходят набор тестов< /а>.
Я не верю, что реализация jQuery Promise имеет другую спецификацию как таковую. Он почти, но не совсем совместим с Promises/A. По большей части они хорошо играют вместе. Есть несколько пограничных случаев, связанных с обработкой ошибок, когда промисы jQuery могут вести себя не так, как вы ожидаете. Доменик подробно рассказывает об этом в своем выступлении, вы также можете найти информацию об этом в этом посте: что хорошего в обещаниях js
Как связаны Promise.then() в Ember RSVP, Promise.then() в Tildeio RSVP и deferred.then() в jQuery?
Ember и Tildeio RSVP — это одно и то же. jQuery в основном такой же, за исключением того, что:
«Если обработчик ошибок возвращает что-то, кроме обещания, большинство реализаций считают ошибку обработанной и не распространяют ее. Однако в этих случаях jQuery не считает обработанную ошибку и все равно распространяет ее дальше». – что хорошего в промисах js
person
Mike Grassotti
schedule
06.07.2013