Pot.js と PotLite.js で利用可能。
Deferred かどうか分からない値を確実に Deferred インスタンスにして返します。
 引数 x を、次のチェインに値が渡せるよう Deferred インスタンス化して返します。
 
 何らかの関数の戻り値などが Deferred インスタンスなのかどうか
 曖昧なときなどに有用です。
 
 Pot.globalize() が適応済みの場合、Pot.Deferred.maybeDeferred() が maybeDeferred() で実行できます。
Pot.Deferred インスタンスを返します。
// ランダムに Deferred や Error, 文字列を返す関数
function randomDeferred() {
    var n = Math.random() * 10;
    if (n < 2) {
        return new Error('error');
    } else if (n < 5) {
        return 'string';
    } else {
        return Pot.Deferred.begin(function() {
            return 'deferred';
        });
    }
}
Pot.Deferred.begin(function() {
    // 不明な値を取得
    var value = randomDeferred();
    // 次のチェインに繋げられるように Deferred 化する
    return Pot.Deferred.maybeDeferred(value);
}).ensure(function(res) {
    Pot.debug(res); // (Error: error) or 'string' or 'deferred'
});