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