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

时间:2016-12-07 12:55:56

标签: javascript jquery promise jquery-deferred

我构建Jquery Promise。 它的结构是下一个:

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

donefail块中我制作"取消阻止"屏幕。但有时候我无法解锁"取消阻止"码。

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

2 个答案:

答案 0 :(得分:1)

是的,因为您需要在第二个时间内返回承诺:

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

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

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

答案 1 :(得分:0)

您的faildone回调不属于同一承诺。 request1()request2()创建了自己的。

var deferred = request1();

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