javascript - 我应该如何嵌套这些异步调用?

标签 javascript jquery

在我的代码中,我有一个函数依赖于对 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/

相关文章:

jquery - 打字文字动画无法控制宽度

javascript - 在javascript中查找元素的索引

javascript - 如何在每个 jquery 链接后添加 "br"?

javascript - 使用 jquery 的动态目录

jquery - 如何平均数字并动态显示结果

javascript - 页面创建时的错误下拉菜单 - html css

jquery - 手动触发的粘贴事件没有 .originalEvent 属性?

javascript - 样式化 CLNDR.js 日历多日事件的第一天和最后一天

javascript - 使用 forRoot 将变量传递给模块

javascript - Controller 未在组件中加载 - AngularJS