2017-06-06 92 views
-2

我需要按順序運行2個AJAX。第一個AJAX只會在頁面加載時調用一次。第二個AJAX將在第一個AJAX被調用或用戶單擊頁面上的某些按鈕後調用。按順序運行AJAX

我寫了以下內容,但每次調用第二個AJAX時都會調用第一個AJAX。

var GetFirstAJAX = function() { 
    var deferred = $.Deferred(); 
    $.ajax({ 
    ... 
    success: deferred.resolve(); 
    error: deferred.reject(); 
    ... 
    }); 
    return deferred.promise(); 
}; 

//Second AJAX 
$.when(GetFirstAJAX()).then(function() 
{ 
    $.ajax({ 
    ... 
    }); 
}); 
+0

呼叫第二阿賈克斯第一個1是您可以閱讀更多關於鏈接承諾的信息https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then#Chaining – iamdevlinph

回答

1

您可以只運行在done方法的第二個AJAX可以在第一AJAX被捆綁,像這樣:

// first ajax 
 
$.ajax({ 
 
    // .. ajax details 
 
}).done(function(res){ 
 
    // res is the result of the first ajax 
 
    // do something with it (e.g console.log) or call second ajax call 
 
    $.ajax({ 
 
    // .. second ajax details 
 
    }).done(function(res2) { 
 
    // .. the rest of logic 
 
    }) 
 
})