【发布时间】:2023-04-08 01:47:02
【问题描述】:
我的 ajax 方法很少,我想在成功完成所有这些 ajax 调用后执行一些代码。我无法更改或重新定义 ajax 方法。 请让我知道,如何实现这一点。
我尝试使用 WHEN,但它会立即被调用,而不是等待所有调用完成。(如建议的那样,一旦我在 loadData1() 中添加 return,它就可以正常工作。)
现在我的问题是,如果任何请求(loadData1() 或 loadData2()) 出现错误,则“then()”不会被执行。请告诉我,如何实现这一目标。
var load1 = loadData1();
var load2 = loadData2();
var load3 = loadData3();
var load4 = loadData4();
$.when(load1, load2, load3,load4).then(function () {
console.log("All done");
});
function loadData1() {
return $.getJSON("http://10.1.2.3/cgi-bin/GetData1.cgi", function (data) {
console.log(data);
});
}
谢谢
【问题讨论】:
-
loadData1需要返回promise,否则你什么都做不了 -
你试过使用
.promise吗? -
@ArunPJohny ,它应该返回什么? .你能详细说明或修改我的代码吗?
-
function loadData1() { return $.getJSON("http://10.1.2.3/cgi-bin/GetData1.cgi", function (data) { console.log(data); }); }- 但既然你说你不能修改 ajax 方法,不确定 -
谢谢我试过这个并且有效! .谢谢阿伦
标签: javascript jquery angularjs ajax