19

Ember's Promise について学ぶのに役立ついくつかの全体像の質問:

  1. Ember の RSVPはTildeio の RSVPと同じですか? そうでない場合、それらはどのように異なりますか? それらはどのように関連していますか?

  2. JavaScript の「Promise」にはさまざまな種類、つまり仕様がありますか? もしそうなら、jQuery Promiseが Promise 仕様の 1 つのセット タイプ (それは何ですか?) を使用し、 EmberRSVP.Promiseが Promise 仕様の別のセット、つまりPromises/A+を使用するのは本当ですか?

  3. Ember RSVPPromise.then()Tildeio RSVPPromise.then()、およびjQuerydeferred.then()はどのように関連していますか? Ember のPromiseとjQuery のとはどうthen()違うのですか? Promisethen() 間違いを避けるために知っておくとよいでしょう。

Ember の RESTAdapter のupdateRecordajax callで使用されている Ember の RSVP.Promise例。これらは、jQuery Promisethen() #1then() #2に関するいくつかの SO 投稿です。私は今混乱状態にあります。

4

1 に答える 1

23

これは大きなトピックです。先月のEmberNYC ミートアップで数時間話しました。Promise を理解したい場合は、まず以下をチェックしてください。

  1. Ember の RSVP は Tildeio の RSVP と同じですか? そうでない場合、それらはどのように異なりますか? それらはどのように関連していますか?

基本的に同じです。Tildeio の RSVP は、RSVP の活発な開発が見られる場所です。Ember の RSVP はそのライブラリのコピーです。

  1. JavaScript の「Promise」にはさまざまな種類、つまり仕様がありますか? もしそうなら、jQuery Promise は Promise 仕様の 1 つのセット タイプを使用し (それは何ですか?)、Ember の RSVP.Promise は Promise 仕様の別のセット、すなわち Promises/A+ を使用するのは本当ですか?

確かに、デザインによるものではなく、さまざまなフレーバーがありますが、それは物事がどのように進化したかです. Promises/A+は、提案されている多くの Promise 仕様の 1 つであり、最も注目を集めているようです。ほとんどの promise 実装 (RSVP を含む) は Promises/A+ に準拠しています。つまり、それらはtest-suiteに合格します。

jQuery の Promise 実装の仕様自体が異なるとは思いません。Promises/A にほぼ準拠していますが、完全には準拠していません。ほとんどの場合、彼らは一緒に仲良く遊んでいます。jQuery promise が期待どおりに動作しない可能性がある、エラー処理に関連するエッジ ケースがいくつかあります。Domenic は彼の講演でこれについて詳しく説明しています。また、この投稿でそれに関する情報を見つけることができます: whats so great about js promises

Ember RSVP の Promise.then()、Tildeio RSVP の Promise.then()、および jQuery の deferred.then() はどのように関連していますか?

Ember と Tildeio RSVP は同じものです。jQuery のものは、次の点を除いてほとんど同じです。

「エラーハンドラーが約束以外のものを返す場合、ほとんどの実装はエラーが処理されたと見なし、それを伝播しません。ただし、jQuery はこれらの場合にエラーが処理されたとは見なさず、とにかくそれを前方に伝播します。」- js のプロミスのすばらしいところ

于 2013-07-06T03:54:54.713 に答える