所有5个ajax调用完成后,我想打印foobar
。这意味着即使其中的4个已加载,但其中1个仍在加载,“ foobar”仍不会打印。我在线上尝试了许多解决方案,但在完成所有ajax调用后仍然无法打印foobar
。
const ajaxCall = (prop, url) => {
return $.ajax({
type: "GET",
url: url,
timeout: 18000000,
success: function (data) {
console.log(data);
db[prop] = JSON.parse(data);
},
error: function (error) {
console.log('ajax error');
}
});
}
const loadData = () => {
let request_1 = ajaxCall('prop1','http://' + host + ':' + port + '/' + workspace + '/api/1.php');
let request_2 = ajaxCall('prop2','http://' + host + ':' + port + '/' + workspace + '/api/2.php');
let request_3 = ajaxCall('prop3','http://' + host + ':' + port + '/' + workspace + '/api/3.php');
let request_4 = ajaxCall('prop4','http://' + host + ':' + port + '/' + workspace + '/api/4.php');
let request_5 = ajaxCall('prop5','http://' + host + ':' + port + '/' + workspace + '/api/5.php');
$.when(request_1,request_2, request_3, request_4, request_5)
.done(() => {
console.log('foobar');
})
}
答案 0 :(得分:-1)
我刚刚发现我的代码确实有效。该问题是由数据库连接问题引起的。数据库未正确连接,但AJAX仍将其响应为“完成”。