我构建Jquery Promise
。
它的结构是下一个:
request1()
.then(response => {})
.then( () => {
request2().done(response => {})
}
.fail(err => {});
在done
和fail
块中我制作"取消阻止"屏幕。但有时候我无法解锁"取消阻止"码。
是否意味着request2
中发生了一些不好的事情,并且在父请求的fail
中这个问题没有得到解决?
答案 0 :(得分:1)
是的,因为您需要在第二个时间内返回承诺:
.then( () => {
return request2().done(response => {})
}
或者,如果您不使用某个块,则会在ES6 lambda中自动返回。
.then( () => request2().done(response => {}) )
答案 1 :(得分:0)
您的fail
和done
回调不属于同一承诺。 request1()
和request2()
创建了自己的。
var deferred = request1();
deferred.then(response => {})
.then(() => {
request2().done(deferred.resolve)
.fail(deferred.reject)
})
.done(response => {})
.fail(err => {});