0

我试图在一个循环中发出多个 JSON 请求并将它们保存到一个变量中,以便以后可以使用该变量。到目前为止,我有这个,但它返回一个空数组。非常感谢任何帮助。

function multipleJSON(){
    var arr=[];
    var result = (function () {

        for(var 0=1;i<10;i++){
            .ajax({
                'async': false,
                'global': false,
                'dataType': jsontype,
                'url': 'index.php?param='+i+ '&callback=?',
                'dataType': jsontype,
                'success': function (data) {                 
                    arr.push(data);
                }
            });
        }
        return arr;
    })(); 

    return result;

}

// returns an empty array
my var=multipleJSON();
4

2 回答 2

1

试试jquery的when函数:

$.when(
    $.ajax("/page1.php"), 
    $.ajax("/page2.php")
)
.then(myFunc, myFailure);

http://api.jquery.com/jQuery.when/

于 2013-08-09T14:41:25.403 回答
0
  1. 您的 for 循环中有一个错误:for(var 0=1;i<10;i++) {应该是for(var i=0;i<10;i++) {
  2. arr在 ajax 调用完成之前返回。当计数器达到 10 时,您可以在方法中使用计数器并从success方法返回。arrsuccess
于 2013-08-09T08:19:36.710 回答