2013-07-06 27 views
19

Alcune domande big-picture per aiutare conoscere promessa di Ember:In che modo le Promesse di Ember si riferiscono alle Promesse in generale, e in particolare alle Promesse di jQuery?

  1. È Ember's RSVP lo stesso di Tildeio's RSVP? Se no, come sono diversi? Come sono collegati?

  2. JavaScript "Promise" è disponibile in diversi gusti, ad esempio le specifiche? Se sì, è vero che jQuery Promise utilizza un tipo specifico di specifica Promessa (che cos'è?) E lo RSVP.Promise di Ember utilizza una serie diversa di specifiche Promessa, ovvero Promises/A+?

  3. In che modo sono correlati Ember RSVP's Promise.then(), Tildeio RSVP's Promise.then() e jQuery's deferred.then()? In che modo i numeri Promise e then() di Ember sono diversi da quelli di jQuery Promise e then()? È bene sapere per evitare errori.

Esempio di Ember di RSVP.Promise utilizzato in di Ember RESTAdapter updateRecord s' ajax call. Questi sono alcuni post SO su jQuery Promise, then() #1 e then() #2. Sono in uno stato di confusione in questo momento.

risposta

23

Questo è un grande argomento. Abbiamo trascorso alcune ore a parlarne negli ultimi mesi EmberNYC meetup. Se si vuole capire le promesse, un ottimo punto di partenza sarebbe il check-out: intro to the power of the Promises pattern in Javascript

  • parlare

    1. è RSVP di Ember lo stesso di RSVP di Tildeio? Se no, come sono diversi? Come sono collegati?

    Fondamentalmente lo stesso. L'RSVP di Tildeio è il luogo in cui è possibile trovare lo sviluppo attivo di RSVP. L'RSVP di Ember è una copia di quella libreria.

    1. JavaScript "Promise" è disponibile in diversi gusti, ad esempio le specifiche? In caso affermativo, è vero che jQuery Promise utilizza un tipo specifico di specifica Promessa (che cos'è?) E RSVP.Promise di Ember utilizza una serie diversa di specifiche Promessa, ovvero Promises/A +?

    Di sicuro è disponibile in diversi gusti, non tanto in base alla progettazione, ma è come si sono evolute le cose. Promises/A+ è uno dei molti proposed promise specs e sembra avere la massima trazione. La maggior parte delle implementazioni di promesse (incluso RSVP) sono conformi a Promises/A +, il che significa che superano lo test-suite.

    Non credo che l'implementazione di Promise di jQuery abbia una diversa specifica per sé. È quasi-ma-non-abbastanza-compatibile con Promises/A. Per la maggior parte giocano bene insieme.Ci sono un paio di casi limite relativi alla gestione degli errori in cui le promesse di jQuery potrebbero non comportarsi come ci si aspetterebbe. Domenic ottiene in questo in dettaglio nel suo discorso, si possono anche trovare informazioni su di esso in questo post: whats so great about js promises

    Come sono di Ember RSVP Promise.then(), di Tildeio RSVP Promise.then(), e jQuery di differita. quindi() correlato?

    Ember e Tildeio RSVP sono la stessa cosa. jQuery è principalmente lo stesso eccetto:

    "Se un gestore di errori restituisce qualcosa di diverso da una promessa, la maggior parte delle implementazioni considera l'errore gestito e non lo diffonde. Tuttavia, jQuery non considera l'errore gestito in questi casi e lo propaga comunque in avanti. " - whats so great about js promises

  • +0

    Grazie Mike. A proposito, hai detto "puoi anche trovare informazioni a riguardo in questo post:" hai lasciato qualcosa o il post è solo il link talk di Domenic? –

    +0

    Dovrebbe essere stato un collegamento a questo post di Bryan Klimt: http://blog.parse.com/2013/01/29/whats-so-great-about-javascript-promises/ –