javascript - 使用 jQuery.Deferred 代替变量?

标签 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.

我该怎么做?

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

最佳答案

您不能只使用您分配的变量。相反,创建一个 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/

相关文章:

javascript - deferEvaluation 和 extend({deferred : true})

javascript - Dojo使用延迟函数在ajax回调函数中获取数据

javascript - 为什么 for..in() 循环不返回数组内部的对象?

javascript - 如何在 jquery 中获取多个延迟调用的 ajax 结果?

javascript - 在取消选中复选框时在 jquery .prop() 中使用 bool 变量。我该如何管理它?

javascript - jQuery.Deferred.prototype.then : returns an object with behaviour I don't understand

javascript - jQuery Deferred - 捕获与失败

javascript - 在 HTML5 中创建加载屏幕

javascript - CSS 帮助请求 DIV 放置和滚动