Pot.js - Pot.Deferred.prototype methods

Pot.Deferred.prototype methods

このセクションは Deferred (Pot.Deferred) の prototype メソッドを扱います。

prototype メソッドは、new Pot.Deferred() のチェインから繋げられる関数/メソッドです。
または、Pot.Deferred.begin() のような Pot.Deferred インスタンスを返す関数から繋げられるものです。
static な関数は 次のセクション Pot.Deferred の関数 で扱っています。
Pot.Deferred についての詳しい情報は Deferred リファレンス を参照ください。

Pot.Deferred のチェインは、柔軟に繋げていくことができます。

// HTML body に要素名と数を表示する適当な例

var d = new Pot.Deferred();

// 速度を調節
d.speed('slow').till(function() {
    // body が読み込まれるまで待機
    if (!document.body) {
        return false;
    } else {
        return true;
    }
}).then(function() {
    // タグ名を取得
    return document.getElementsByTagName('*');
}).wait(1).then(function(res) {
    // 1 秒待ってから配列化
    return arrayize(res);
}).speed('fast').filter(function(node) {
    // タグ名があるものだけに絞る
    return node && node.tagName;
}).wait(0.2).speed('normal').map(function(node) {
    // スピードを調節して小文字にする
    return node.tagName.toLowerCase();
}).reduce.slow(function(tags, tag) {
    // {タグ名: 数} のオブジェクトを作る
    tags[tag] = (tags[tag] || 0) + 1;
    return tags;
}, {}).forEach(function(val, key) {
    // body に挿入
    var text = '<' + key + '/>:' + val + '\n';
    document.body.appendChild(document.createTextNode(text));
}).rescue(function(err) {
    // エラーが起きたら通知
    alert(err);
}).begin(); // チェインを開始

これは、あくまでメソッドの使用例なので やり方は追求しません。

Pot.globalize() が適応されている場合、 例えば new Pot.Deferred が、 new Deferred と実行できます。

このリファレンスのサンプルコードの多くは、 便宜上 Pot.globalize() が適応されたと仮定して記述しています。
例えば、Pot.forEach として定義されている関数を forEach(...) と表現している場合があります。 これは、Pot.globalize() がされていない場合 Pot.forEach(...) として呼び出せます。 他の関数も同様です。
Pot.globalize() が適応済みの場合、定義名のままで呼び出せます。

また、サンプルコードでは コンソールに出力するデバッグ用関数 Pot.debug() を多用しています。
Pot.debug() を、たんに debug() と表している場合もあります。
Pot.debug については このセクションで扱っているので詳しくはメニューから参照ください。

このリファレンスは Pot.js, PotLite.js の関数を事細かく解説しているわけではないので、 足りない情報があるかもしれません。
より詳しくは ソースコードから自動生成された JSDoc ドキュメント (Pot.js) or JSDoc ドキュメント (PotLite.js) または直接ソースコードを参照ください。