使用jQuery.Deferred对变量?

时间:2013-04-14 12:35:58

标签: javascript jquery-deferred deferred

当ajax完成时,我可以使用done,error,always deferred方法。 但我可以这样做,因为jqXHR对象是从Deferred对象派生的。

但是我怎么能在这个简单的例子中模仿这种行为:

我有一个名为t的变量。

我希望在t得到它的值时调用done函数。

像这样:( psuedo

var t;
setTimeout(function (){t=100;},3000);
t.done(function (){alert('');}); //im expecting this alert after 3 seconds.

我该怎么做?

P.S。我知道我可以在回调函数中调用警报(显然)。但又来了。我想应用延期行为

1 个答案:

答案 0 :(得分:1)

您不能只使用您指定的变量。相反,请手动创建jQuery.Deferred object,然后.resolve()

var t = new $.Deferred();
setTimeout(function() {
    t.resolve(100);
}, 3000);
t.done(function(val) {
    alert(val);
}); // this will alert "100" after 3 seconds