从dojo.Deferred取消注册回调

时间:2010-05-29 18:14:23

标签: javascript dojo

有没有办法取消注册dojo.Deferred的回调?如果不是为什么?

1 个答案:

答案 0 :(得分:0)

根据this,没有。虽然不应该太难添加一个:

dojo.Deferred.prototype.removeCallback = function(fn) {
    for (var c = this.chain, i = c.length; i--;)
        if (c[i][0] === fn) c.splice(i, 1);
    return this;
};

用法:

var d = new dojo.Deferred;
d.addCallback(someFn);
// Remove it:
d.removeCallback(someFn);