Gavia.Deferred 

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);