javascript - 如何在 jQuery 中链接延迟对象?

标签 javascript jquery http asynchronous

只是一小段代码:

return $.when(
  $.get('/url1.json').done(function(r){
    //case 1
  }), $.get('/url2.json').done(function(r) {
    //case 2
  })
).done(function(){return $.get('/url3.json').done(function(r){
  //case 3
})})

这段代码的作用:

  1. 运行次数为 /url1.json/url2.json同时并在成功的情况下运行 case 1 的代码和case 2分别
  2. 如果两者都成功 /usr1.jsonurl2.json它运行 get /url3.json
  3. 返回延迟对象(或 promise ,据我所知,现在没关系),$.when返回(因此,根据 /url1.json 的规则返回 /url2.json$.when 的对象)

我需要什么:
1. ...
2. ...
3. 返回由 $.get('/url3.json') 返回的延迟对象

所以,也许我需要类似的东西

$.when(...).flatMap(function() { return $.get('/url3.json') })

我有什么办法吗?

最佳答案

只需调用 then而不是 done 将 promise 更改为传入回调的结果。

return $.when(
    $.get('/url1.json'), 
    $.get('/url2.json')
  )
  .then(function() {
    return $.get('/url3.json')
  });

http://jsfiddle.net/5N9JJ/3/

关于javascript - 如何在 jQuery 中链接延迟对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21946882/

相关文章:

javascript - 由于奇怪的错误,JS 在 IE8 中失败

ruby - 缓存获取的网页有哪些选项?

java - 在 Android 中编写许多 HTTP 请求的良好设计模式

javascript - 执行功能的滚动条高度指示器

javascript - 通过ajax获取json数据

javascript - 设置 jQuery 对话框按钮回调

c# - ScriptManagerProxy、UpdatePanel 和纯 JS

jquery - 用于对 jQuery 密集型网站进行 UI 测试的推荐工具

php - 为什么 Post/Redirect/Get 模式(PRG 模式)有效?

javascript - JS开发的最佳实践?