Pot.js と PotLite.js で利用可能。
コールバックチェイン開始済みの Pot.Deferred インスタンスを返します。
開始済みとは、.begin() が実行済みということです。
ただしコールバック関数自体は 1 つも追加されていないので、
空の状態で実行済みということです。
なので、then などでコールバック関数を追加すると
即座に実行します。
引数に何らかの値を渡すと、その値が次のコールバックの引数に渡ります。
Pot.globalize() が適応済みの場合、Pot.Deferred.succeed() が succeed() で実行できます。
開始済みの 新しい Pot.Deferred インスタンスを返します。
Pot.request('/foo.json').then(function(data) {
return (
// 結果が取得できたら次のチェインに繋げるため、
// succeed を使用して整合性をとる。
// 失敗したら別の request により取得する
data.result ? Pot.Deferred.succeed(data)
: Pot.request('/bar.json')
).then(function(data) {
// 次のチェインに繋げられる
return data.result;
});
}).then(function(res) {
debug(res);
});
用途は様々ですが、一例として上のような場面で
非 Deferred な値を Deferred 化するために便利です。