jQueryDeferredライクな独自のDeferredオブジェクトです。 非同期処理を合成することが出来ます。
名前 | 概要 |
---|---|
Deferred.when | 複数のDeferredが全て成功するまで待つDeferredを返す。 |
done | Deferredが**成功**した時に呼ばれる関数を登録するメソッド。 既に成功している場合は登録後すぐに呼ばれる。 |
fail | Deferredが**失敗**した時に呼ばれる関数を登録するメソッド。 既に失敗している場合は登録後すぐに呼ばれる。 |
then | 値もしくはDeferredを返す関数を渡す。 値を返した場合は成功値を合成、 Deferredを返した場合はDeferredを合成する関数として振る舞う。 |
resolve\* | Deferredに**成功**値を渡す。 既にDeferredが成功、もしくは失敗している場合は無視される。 |
reject\* | Deferredに**失敗**値を渡す。 既にDeferredが成功、もしくは失敗している場合は無視される。 |
promise | Deferredからpromise, resolve, rejectメソッドを削除したものを返す。 コールバックの登録のみを意図する場合に使用する。 GaviaのStore/Record APIは全てpromiseしたものを返している。 |
*: promiseメソッドの返り値には存在しないメソッド
var deferred = new Gavia.Deferred().promise();
deferred.then(function(value) {
return value + 1;
}).done(function(value) {
assert(value, 2);
});
deferred.resolve(1);