当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.
我该怎么做?
附:我知道我可以在回调函数中调用警报(显然)。但再一次。我想应用延迟行为
最佳答案
您不能只使用您分配的变量。相反,创建一个 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
关于javascript - 使用 jQuery.Deferred 代替变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15999145/