内部请求失败导致父请求失败

Fail for Inner request caused fail of parent request

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

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

donefail 块中,我制作了 "unblock" 屏幕。但有时我无法获得 "unblock" 代码。

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

是的,因为您需要 return 第二个承诺:

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

或者,如果您不使用块,return 会在 ES6 lambda 中自动生成。

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

您的 faildone 回调不是基于同一个承诺。 request1()request2() 创建他们自己的。

var deferred = request1();

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