2013-07-06 40 views
19

一些大畫面的問題,以幫助瞭解Ember的承諾:Ember的承諾如何與一般的承諾有關,特別是jQuery的承諾?

  1. Ember's RSVP一樣Tildeio's RSVP?如果不是,他們有什麼不同?他們有什麼關係?

  2. JavaScript「承諾」有不同的口味,即規格?如果是這樣,jQuery Promise是否使用了一套Promise規範(它是什麼?),並且EmberRSVP.Promise使用了一組不同的Promise規範,即Promises/A+

  3. Ember RSVP's Promise.then()Tildeio RSVP's Promise.then()jQuery's deferred.then()如何關聯? Ember的Promisethen()與jQuery的Promisethen()有什麼不同?很高興知道避免錯誤。

Ember的RSVP.Promise的實施例中所使用Ember的RESTAdapter的updateRecordajax call。這些是關於jQuery Promise,then() #1then() #2的SO帖子。我現在處於混亂狀態。

回答

23

這是一個很大的話題。我們花了幾個小時在最後幾個月討論它EmberNYC meetup。如果你想了解的承諾,一個偉大的地方開始會被檢查出:

  1. 是Ember的RSVP與Tildeio的RSVP相同?如果不是,他們有什麼不同?他們有什麼關係?

基本上是一樣的。蒂爾迪奧的RSVP可以發現RSVP的積極發展。 Ember的RSVP是該圖書館的副本。

  • 確實的JavaScript 「無極」 有不同的調味劑,即規格?如果是這樣,jQuery Promise是否使用了一套Promise規範(它是什麼?)和Ember的RSVP.Promise使用了一組不同的Promise規範,即Promises/A +?
  • 可以肯定它有不同的味道,通過設計沒有那麼多,但它的事情如何演變。 Promises/A+是許多proposed promise specs之一,似乎有最大的牽引力。大多數承諾實現(包括RSVP)都符合Promises/A +,這意味着它們通過test-suite

    我不相信jQuery的Promise實現有不同的spec。它幾乎不符合Promises/A。大多數情況下,他們在一起很好玩。有幾個與錯誤處理有關的邊緣案例,jQuery承諾的行爲可能不像您預期​​的那樣。 Domenic進入這在他的談話細節,你也可以找到有關它的信息在這個崗位:whats so great about js promises

    如何灰燼RSVP的Promise.then(),Tildeio RSVP的Promise.then(),和jQuery的推遲。那麼()相關?

    Ember和Tildeio RSVP是一樣的東西。 jQuery的幾乎是相同的,除了:

    「如果錯誤處理程序返回一個承諾以外的東西,大多數實現認爲錯誤處理,並且不傳播它。但是,jQuery不考慮在這些情況下處理的錯誤,並且無論如何都會傳播它。「 - whats so great about js promises

    +0

    謝謝邁克。順便說一句,你說:「你也可以在這篇文章中找到關於它的信息:」你是否放棄了某些東西,或者這個帖子只是Domenic的談話鏈接? –

    +0

    本應該是Bryan Klimt的這篇文章的鏈接:http://blog.parse.com/2013/01/29/whats-so-great-about-javascript-promises/ –