簡體   English   中英

如何在jQuery中鏈接延遲對象?

[英]How do I chain deferred objects in jQuery?

只是一小段代碼:

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分別運行case 1case 2代碼
  2. 如果/usr1.jsonurl2.json都成功,它將運行/url3.json
  3. 返回$.when /url1.json返回的延期對象(或諾言,現在我/url1.json /url2.json過)(因此,按$.when /url2.json的規則,/ /url1.json/url2.json的對象)

我需要的是:
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/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM