微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 如何对两个Ajax调用的结果执行计算?

我有一个包含两个文本字段的页面.当用户更改任何一个的值时,我发送两个ajax请求,一个用于每个字段的值,然后对两个结果执行计算.

但是,因为它们是异步的,所以无法知道它们何时完成,并且我无法在任何一个的回调函数中运行计算,因为另一个可能在那时没有完成.

目前我正在声明两个全局变量,从第一个回调调用第二个请求,并在第二个回调中计算结果.

这似乎是非常糟糕的做法,特别是因为他们都查询相同的API – 没有理由让代码写两次.
如何重构我的代码以改善这一点?

解决方法

只想添加Deferred可以在这里帮助:

var responses = [];

$.when(
    $.get("url1",function(response) {
        responses[0] = response;
    }),$.get("url2"),function(response) {
        responses[1] = response;
    })
).then( // will run when both are completed
    function() {
        alert(responses);
    }
);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐