链接 .then 时的 Jquery 延迟对象问题

标签 jquery ajax jquery-deferred

我的链接数据返回的数据有问题,然后是第一个延迟数据。第一个示例有效:

api.getData().done(function(data){
  api.getData2().done(
    function(data2){
      $.log('success', data2);
    });
  });

但是第二个示例应该可以工作,第二个.then()有data2,但由于某种原因它与data1相同。

api.getData().then(function(data1){
  return api.getData2();
}).then(
function(data2){
  $.log('success', data2);
});

有什么建议吗?

最佳答案

$.when将接受两个返回 Promise 的异步函数,并在两者完成后执行 .then() 函数:

$.when( api.getData(), api.getData2() ).done(function(data, data2) {
    $.log('success', data2);
});

如果由于某种原因(例如需要数据)您需要在 getData2() 之前执行 getData(),则确实不需要 。那么(),因为你的第一个例子似乎足够有效?

关于链接 .then 时的 Jquery 延迟对象问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13477654/

相关文章:

jquery - 如何处理多个ajax请求?

javascript - Google Street View API - 捕捉缩放变化

jquery - 使用 jQuery 对复杂对象使用 JSON 动态更新 html 表

javascript - jQuery.Deferred.prototype.then : returns an object with behaviour I don't understand

javascript - 如果不需要 Ajax,如何从 promise 中返回?

ruby-on-rails - Ajax 删除链接 注销current_user

jquery - 链式 jQuery 延迟,即使在 then 语句之后也会调用所有进度回调

javascript - jquery组合多个选择器

javascript - 带 mask 的 mouseOut 效果

javascript - 防止在表单提交/Node 后重新加载页面(没有可用的 ajax)