在我的代码中,我有一个函数依赖于对 API 端点的异步调用的结果。为了使函数正确执行,它需要等待调用结果。因此,我阅读了异步调用,并从另一个 Stack Overflow 问题中了解到,您应该使用回调函数来实现正确的执行。
下面的代码是我尝试使用回调来让我的函数成功运行,但它不起作用,目前我认为调用困惑了。
我不确定需要如何构造此代码,但我首先需要 getInstructionType()
调用来返回其值,然后是 GetValidationResult()
调用返回其值,然后需要执行 setValidationRowColor()
函数。
getInstructionType(applicationNumber, function(result) {
getInstructionValidationResult(applicationNumber, function(type) {
setValidationRowColor(result);
});
});
function getInstructionValidationResult(applicationNumber) {
var url = //-snip-;
$.get(url, function(data) {
return data;
});
}
function getInstructionType(applicationNumber) {
var url = //-snip-;
$.get(url, function(data) {
return data;
});
}
最佳答案
您可以向可用作回调的函数添加参数。然后您可以在 AJAX 请求完成时调用它们,如下所示:
getInstructionType(applicationNumber, function(result) {
getInstructionValidationResult(applicationNumber, function(type) {
setValidationRowColor(result);
});
});
function getInstructionValidationResult(applicationNumber, callback) {
$.get(/*-snip-*/, function(data) {
// some custom logic to work with the response here...
callback && callback(data);
});
}
function getInstructionType(applicationNumber, callback) {
$.get(/*-snip-*/, function(data) {
// some custom logic to work with the response here...
callback && callback(data);
});
}
关于javascript - 我应该如何嵌套这些异步调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54253186/