jQueryのDeferredのデザインにも使われていることから、一番メジャーになりそうなCommonJS Promises/Aの提案を実装してみました。 CommonJS Promises/Aのwikiを読む限りでは、マストな仕様は以下の3つです。 Promiseは"未完"な状態から始まり、"未完"あるいは"完了"あるいは"失敗"の状態へ遷移すること Promiseは"then"という名前の関数をもったオブジェクトを返すこと "then"メソッドはPromiseを返しチェインできるようにし、またコールバックでエラーが起きた場合は"失敗"の状態へ遷移すること あとはそれぞれの開発者が便利なAPIを追加してあげてね!ということらしい。 つまり$.Deferred#resolveとかは仕様にあるわけではなくて、独自に追加された便利APIということになります。 やりたければresolveでコール