試圖使用返回true或false的函數,並且還包含一些ajax。調用一個函數並等待,直到返回響應才繼續?
我調用一個函數期待一個真或假的回覆:
if(stepIsValid(stepName) == true) {
//Do Something
}
else doSomethingElse();
函數「stepIsValid()」做了一些檢查,然後請求通過AJAX額外信息。然後返回true或false:
function stepIsValid(stepName) {
var isValid = true;
if(condition) {
isValid = false;
}
if(condition) {
isValid = false;
}
if(condition) {
isValid = false;
}
if (pub && isbn) {
$.post("/index.php/mypath", { isbn: isbn, name: pub })
.done(function(data) {
$("#resultElement").val(data);
isValid = true;
return isValid;
})
.error(function(data) {
isValid = false;
return isValid;
});
}
else {
isValid = false;
return isValid;
}
我的問題是,當stepIsValid被調用,jQuery的不等待響應,假設虛實返回之前調用doSomethingElse()。
解決此問題的最佳方法是什麼?
代碼確實返回true但不夠快。
這兩個函數都在單獨的文件中。
(假設條件,酒吧,ISBN都接上水管和可用)
您無法從ajax請求回調中返回值 –
3個第一個條件返回false爲什麼您不使用「或」? if(condition || condition || condition){isValide = false} 或者你可以只是declar isValidate = false,並在那種情況下,我返回true? 使用3行代替所有這些行! 然後我會很清楚地發現你的錯誤;) – Alaeddine
好說明@Alaeddine和它的東西,當我清理我的代碼時我會做。目前,雖然這不在問題的範圍之內。 –