【问题标题】:Fail for Inner request caused fail of parent request内部请求失败导致父请求失败
【发布时间】:2016-12-07 12:55:56
【问题描述】:

我构建Jquery Promise。 接下来是它的结构:

request1()
   .then(response => {})
   .then( () => {
      request2().done(response => {})
   }
   .fail(err => {});

donefail 块中,我对屏幕进行“解锁”。但有时我无法获得“解锁”代码。

这是否意味着在request2 中发生了一些不好的事情,而这个不好的事情在父请求的fail 中没有解决?

【问题讨论】:

    标签: javascript jquery promise jquery-deferred


    【解决方案1】:

    是的,因为你需要在第二个 then 中返回 promise:

    .then( () => {
        return request2().done(response => {})
    }
    

    或者,如果您不使用块,则在 ES6 lambda 中自动返回。

    .then( () => request2().done(response => {}) )
    

    【讨论】:

    • 嗨!谢谢,似乎是合乎逻辑的解决方案。
    【解决方案2】:

    您的 faildone 回调不是在同一个承诺上。 request1()request2() 创建自己的。

    var deferred = request1();
    
    deferred.then(response => {})
            .then(() => {
               request2().done(deferred.resolve)
                         .fail(deferred.reject)
            })
            .done(response => {})
            .fail(err => {});
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-08
      • 1970-01-01
      • 2018-08-29
      • 2013-10-09
      • 1970-01-01
      • 2017-04-02
      • 2014-01-31
      • 2020-11-26
      相关资源
      最近更新 更多