Xin chào, tôi có 2 cuộc gọi ajax trong tập lệnh của mình, tôi cần chúng chạy asnyc để rảnh, nhưng tôi cần thứ hai chờ đến khi lần đầu kết thúc.jQuery Chờ cho đến khi các cuộc gọi asmail async kết thúc
$.ajax({
type: "POST",
url: "getText.asmx/ws_getText",
data: parO1,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert(msg.d.data);
}
, error: function() {
chyba("chyba v požadavku", "df");
}
});
if (parO2.length > 0) {
$.ajax({
type: "POST",
url: "getText.asmx/ws_getText",
data: parO2,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
/*WAIT UNTIL THE FIRST CALL IS FINISHED AND THAN DO SOMETHING*/
}
, error: function() {
chyba("chyba v požadavku", "df");
}
});
Vì vậy, có ý tưởng nào không? Cảm ơn
nhưng điều này sẽ làm cho thời gian thực hiện lâu hơn vì cuộc gọi thứ hai sẽ bắt đầu sau khi cuộc gọi đầu tiên kết thúc, tôi đã nghĩ về điều này: trong cuộc gọi đầu tiên thành công, tôi có thể đặt một số biến thành true và cuộc gọi thứ hai thành công tôi có thể làm while (variable == false) {wait} và tiếp tục, nhưng tôi không biết cách viết đúng cách – user1352324
Cách duy nhất để thực hiện 'wait' sẽ là 'setTimeout' và sau đó kiểm tra biến toàn cầu của bạn. Nhưng về mặt kỹ thuật, điều đó có nghĩa là thời gian chờ của bạn có thể xảy ra sau khi cuộc gọi được thực hiện, nhưng vẫn đang chờ đợi. Bạn sẽ được tốt hơn off chỉ đơn giản là hiển thị cho người sử dụng một gif quay hoặc một cái gì đó để cho biết máy chủ đang làm việc. – Tejs