Pot.js と PotLite.js で利用可能。
チェインの結果となる値を設定または取得します。
Deferred チェインの結果となる値を設定または取得します。
この値は、前のコールバック関数で return された値です。
args を使用することで、任意の値に設定または上書きできます。
また、コールバック関数内で var res = this.args(); のようにして本来の引数が取得できます。
実行時の Pot.Deferred インスタンスが返ります。
引数を省略して実行すると、前のコールバックの結果が返ります。
var d = new Pot.Deferred();
d.then(function(res) {
debug(res); // undefined
// args により値を設定
}).args('hoge').then(function(res) {
debug(res); // 'hoge'
return res + res;
});
d.begin();
d.then(function(res) {
// 現在の値を取得
debug( this.args() ); // 'hogehoge'
// res と同じものです
debug( this.args() === res ); // true
});
// 分割代入ぽいことするには楽です
d.args(1, 2, 3).then(function(a, b, c) {
debug(a); // 1
debug(b); // 2
debug(c); // 3
});
// 配列でも可
d.args(['A', 'B', 'C']).then(function(a, b, c) {
debug(a); // 'A'
debug(b); // 'B'
debug(c); // 'C'
});