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

3

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

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

donefail块中,我会“取消屏幕锁定”。但有时我无法获取“取消锁定”代码。
这是否意味着在request2中发生了一些不好的事情,并且这种不良情况没有在父请求的fail中解决?
2个回答

1

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

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

另外,如果您不使用代码块,在ES6 lambda中会自动进行返回。

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

嗨!谢谢,看起来是个合理的解决方案。 - demo

0

你的faildone回调函数不在同一个Promise上。 request1()request2()各自创建了它们自己的Promise。

var deferred = request1();

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接