分析美元getJSON异步请求的同步请求。

让我来谈谈我的问题,我想函数调用之前返回一个函数值,但是它的返回值是null,然后把它转换成一些异步请求的信息,不多说,看看例子,这是我以前返回函数值的代码:


功能get_no_order_array(){
无功order_info = show_order();
var命令{ };

美元。getJSON(, / / 客户JSON JSON。

日期{人},foreach(功能(人){)
如果(order_info。k_obj {人} = = undefined){
Order.push(人);
}
})
});

返回命令;
}



后来发现,打印的数组顺序总是空的,下面是已更正的代码:


功能get_no_order_array(){
无功order_info = show_order();
var命令{ };
美元。ajaxsettings.async = false;美元。ajaxsettings.async =假 / /添加执行之前(同步执行);
美元。getJSON(, / / 客户JSON JSON。




日期{人},foreach(功能(人){)
如果(order_info。k_obj {人} = = undefined){
Order.push(人);
}
})
});
美元。ajaxsettings.async = true; / /为及时恢复你的代码执行后,ajaxsettings.async =真实(异步执行);
返回命令;
}



循环前,加一美元。ajaxsettings.async = false;表明同步执行,他将要执行它。

解决多个问题。getJSON()在同一时间数据的混乱

在执行前加$。ajaxsettings.async = false;(同步执行)

执行你的代码后,恢复美元。ajaxsettings.async =真正的时间;(异步执行)

否则,它将影响需要在其他地方异步执行的代码。

例子:


ajaxsettings.async =假美元;

美元。getJSON(URL、数据、功能(数据){ });

美元。getJSON(URL、数据、功能(数据){ });

美元。getJSON(URL、数据、功能(数据){ });

......

ajaxsettings.async =真正的美元;


美元以上的分析。getJSON异步请求和同步的要求是萧边分享你的全部内容。我希望能给你一个参考,希望你能支持它。