Pot.Deferred.prototype.data

{Pot.Deferred|*} Pot.Deferred.prototype.data ([{String|Object|*} key [, {*} value]])

Pot.js と PotLite.js で利用可能。

現在のチェイン上で使えるストレージとして値を設定または取得します。

Pot.Deferred チェインには、ストレージとしてのデータ領域があります。
data メソッドを使うことで、
そのストレージに任意の値を設定、または設定した値を取得することができます。
ストレージは Pot.Deferred 1 インスタンスごとに存在します。
何らかの一時的な値や、 チェインの外側で定義してチェイン上で使う変数などの省略になります。
特に、オブジェクトをハッシュとして使うときには代用できます。
設定するときは、第一引数 key にキー名を、value に任意の値を渡します。
key をオブジェクトで渡して設定することもできます。
取得する場合は、設定したキー名を key に渡します。
対応する値があればそれを返します。
引数を省略して実行すると、ストレージのデータすべてがオブジェクトで返ります。

実行時の Pot.Deferred インスタンスが返ります。
value を省略した場合は、対応する値があれば返ります。
引数をすべて省略すると、データすべてがオブジェクトで返ります。

var d = new Pot.Deferred();

d.data({
    // データを設定する (オブジェクトの場合は引数一つ)
    count : 0,
    begin : 'BEGIN',
    end   : 'END'
}).then(function() {
    // データを取得
    debug( this.data('begin') ); // BEGIN

    return this.data('count') + 1;

}).then(function(res) {
    debug(res); // 1

    // データを更新
    this.data('count', res + 1);

    return this.data('count');
}).then(function(res) {
    debug(res); // 2
    debug( this.data('end') ); // END
});
d.begin();