1

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

但是我如何在这个简单的例子中模仿这种行为:

我有一个名为t.

我希望在tget 的值时调用 done 函数。

像这样的东西:(

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

我怎样才能做到这一点 ?

ps 我知道我可以在回调函数中调用警报(显然)。但又一次。我想应用延迟行为

4

1 回答 1

1

您不能只使用分配给的变量。相反,手动创建一个jQuery.Deferred对象.resolve()它:

var t = new $.Deferred();
setTimeout(function() {
    t.resolve(100);
}, 3000);
t.done(function(val) {
    alert(val);
}); // this will alert "100" after 3 seconds
于 2013-04-14T13:33:35.617 回答