Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在jQuery中链接延迟对象?_Javascript_Jquery_Http_Asynchronous - Fatal编程技术网

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

Javascript 如何在jQuery中链接延迟对象?,javascript,jquery,http,asynchronous,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 })}) 此代码的作用是: 同时为/url1.json和/url2.j

只是一小段代码:

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
})})
此代码的作用是:

  • 同时为
    /url1.json
    /url2.json
    运行代码,如果成功,则分别为
    案例1
    案例2
    运行代码
  • 如果
    /usr1.json
    url2.json
    都成功,它将运行get for
    /url3.json
  • 返回延迟对象(或一个承诺,我现在看到的是不终止的),该对象
    $。当
    返回时(因此,
    /url1.json
    /url2.json的对象由
    $。当
    的规则返回时)
  • 我需要从中得到什么:
    1. ...
    2. ...
    3.返回由
    $.get('/url3.json')

    所以,也许我需要像这样的东西

    $.when(...).flatMap(function() { return $.get('/url3.json') })
    
    我有什么办法吗?

    只需调用而不是
    done
    ,即可将承诺更改为传入回调的结果

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

    只需调用而不是
    done
    ,即可将承诺更改为传入回调的结果

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

    谢谢你,杰森。看起来这正是我需要的。在询问之前,我检查了jquery文档,但不明白
    然后是什么
    ,谢谢你,Jason。看起来这正是我需要的。在询问之前,我检查了jquery文档,但不明白
    then
    到底是什么……您要查找的
    flatMap
    称为
    then
    ,您要查找的
    flatMap
    称为
    then
    at