Pot.Deferred.prototype.ensure

{Pot.Deferred} Pot.Deferred.prototype.ensure ({Function} callback)

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

成功時、エラー時どちらでも実行される関数を Deferred チェインに追加します。

成功時、エラー時どちらでも実行される コールバック関数をチェインに追加します。
必ず実行したい場合などに有用です。

実行時の Pot.Deferred インスタンスが返ります。

var d = new Pot.Deferred();

d.then(function() {
    // ランダムにエラーを発生させる
    if (Math.random() * 10 < 5) {
        return 'OK';
    } else {
        throw 'NG';
    }
}).ensure(function(res) {
    // エラーが起きても実行される
    if (isError(res)) {
        // なんらかのエラー対処
        return errorHandler();
    } else {
        return res;
    }
}).then(function(res) {
    someFunc(res);
}).begin();