嘿,所有。我看来似乎是一个微不足道的问题。我有以下的JavaScript:jQuery:等待函数完成继续处理?
$(function() {
var r = GetResults();
for(var i = 0; i < r.length; i++) {
// Do stuff with r
}
});
function GetResults() {
$.getJSON("/controller/method/", null, function(data) {
return data;
});
}
由于这样的事实,我打电话的方法同步,则脚本继续执行,当它遇到的for循环,r
显然是不会有一个值呢。我的问题是:当我有一个正在执行异步操作的方法,并且依赖于返回到主块的数据时,如何在数据返回之前暂停执行?类似于:
var r = GetResults(param, function() {
});
其中函数是回调函数。我无法将for循环处理移动到JSON请求的回调函数中,因为我在整个页面中多次重复使用GetResults的功能,除非我想复制代码。有任何想法吗?
谢谢你的答复。我将GetResults分开的原因是我在整个页面中多次重复使用该功能。我应该编辑我的帖子来说明。 – user135383
如果您需要对来自多个位置的数据执行相同的处理,只需使用命名函数替换回调函数并在那里执行处理即可。 $ .getJSON(“/ controller/method /”,null,processData(data)); 函数processData(d){...} –