在Javascript(AJAX)中,一个函数等待另一个函数
我试图找到一种方法,使一个函数保持不变,并且仅当其中的异步函数(AJAX调用)完成时才返回其输出(保持流) 在这个点击事件中,“prepareEstimates”函数调用另一个函数,该函数对API进行AJAX调用。最重要的是,在这个函数完成所有工作(包括AJAX调用)之前,代码不会向前移动。因为它调用的是同一个API,所以我不能使用相同的数据同时调用两个API(API的问题超出了这个问题的范围) 然后,一旦这个prepareEstimates函数完成,它就应该向前推进,下一个prepareCustomEstimates函数与这个函数非常相似,它也会做同样的事情在Javascript(AJAX)中,一个函数等待另一个函数,javascript,jquery,ajax,asynchronous,async-await,Javascript,Jquery,Ajax,Asynchronous,Async Await,我试图找到一种方法,使一个函数保持不变,并且仅当其中的异步函数(AJAX调用)完成时才返回其输出(保持流) 在这个点击事件中,“prepareEstimates”函数调用另一个函数,该函数对API进行AJAX调用。最重要的是,在这个函数完成所有工作(包括AJAX调用)之前,代码不会向前移动。因为它调用的是同一个API,所以我不能使用相同的数据同时调用两个API(API的问题超出了这个问题的范围) 然后,一旦这个prepareEstimates函数完成,它就应该向前推进,下一个prepareCus
function prepareEstimates() {
// check if runAPI should be true or false
if (runApi) {
// make call here
$.when(callAJAXFunction(path, dataForAPICalls)).done(function (result) {
// Do other stuff with the result
});
}
};
这个callajax函数只返回一个AJAX调用
// Invoke API call and get result
return await $.ajax({
url: url,
type: "POST",
dataType: "json",
data: data,
success: function (result) {
},
error: function () {
console.log("error calling Api");
}
});
}
我试着使用promise、await和其他工具,但无论我怎么做,都无法让它起作用
最后,第一个AJAX调用被触发,紧接着第二个AJAX调用,在第一个调用完成之前
有什么建议吗
谢谢你,因为
prepareeestimates()代码>必须使用承诺人这是否回答了您的问题?我如何在准备评估中使用承诺?我对承诺有点陌生
function prepareEstimates() {
// check if runAPI should be true or false
if (runApi) {
// make call here
$.when(callAJAXFunction(path, dataForAPICalls)).done(function (result) {
// Do other stuff with the result
});
}
};
// Invoke API call and get result
return await $.ajax({
url: url,
type: "POST",
dataType: "json",
data: data,
success: function (result) {
},
error: function () {
console.log("error calling Api");
}
});
}