如何让返回的数据在下面的延迟回调之外工作?
results.done(function(data)
{
alert(data); // works
});
alert(data); // does not work but need it to work...
如何让返回的数据在下面的延迟回调之外工作?
results.done(function(data)
{
alert(data); // works
});
alert(data); // does not work but need it to work...
这有时会起作用,但这是一个非常糟糕的主意。
var badIdea;
results.done(function(data) {
alert(data);
badIdea = data;
});
setTimeout(function(){
alert(badIdea);
},10000);
重新考虑你的逻辑,不要尝试在 done 回调之外获取数据。
您需要将数据存储在可从外部范围访问的位置。如果您将其存储在回调内部的全局变量中,它将可用;然后,您只需要确保外部代码仅在异步代码完成后执行。
或者,您可以多次调用“done”(.done() 返回延迟对象,因此 .done().done() 或 temp = .done(); temp.done() 会起作用)。如果结果之前已经完成,回调将立即执行。