[英]How do i call a function first and then the second in javascript
我想打電話給checkifPresentInActiveProjLib
第一和后功能checkifPresentInClosedProjLib
function.How我實現這一點?
checkifPresentInActiveProjLib(function(flgAc) {
if (flgAc === "active_found")
// do something
$.ajax(...); // ajax call
});
checkifPresentInClosedProjLib(function(flgCl) {
if (flgCl === "closed_found")
// do something
$.ajax(...); // ajax call
});
只需使用Promise即可處理異步事件。 您需要修改checkifPresentInActiveProjLib
以返回諾言,在這種情況下,您的諾言是$.ajax(...);
所以你確實return $.ajax(...);
然后只需按以下方式調用下一個func:
checkifPresentInActiveProjLib(...)
.then(function() {
checkifPresentInClosedProjLib(args)
})
您可以使用javascript Promise
對象
function checkifPresentInActiveProjLib(flgAc) {
if (flgAc === "active_found")
alert('active_found');
};
function checkifPresentInClosedProjLib(flgCl) {
if (flgCl === "closed_found")
alert('closed_found');
};
function makeAjaxCall(){
var promiseObj = new Promise(function(resolve, reject){
resolve(checkifPresentInActiveProjLib());
});
return promiseObj;
}
makeAjaxCall().then(checkifPresentInClosedProjLib());
這兩個函數中都有異步ajax調用。 如果要在第一個函數完成后調用第二個函數,則需要等待第一個函數完成。
您可以通過在第一個函數的ajax函數部分的response部分中調用第二個函數來簡單地做到這一點。
checkifPresentInActiveProjLib(function(flgAc) {
if (flgAc === "active_found")
// do something
$.ajax(...).done(function( data ) {
// call second function here
}););
});
或者您可以使用諾言:
checkifPresentInActiveProjLib(function (flgAc) {
return new Promise(function (resolve, reject) {
if (flgAc === 'active_found')
// do something
$.ajax(...)
.done(function (data) {
if (data) resolve(data);
})
.fail(function (err) {
reject(err);
});
});
});
然后調用函數為:
checkifPresentInActiveProjLib(...).then(data => checkifPresentInClosedProjLib(...)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.