gpt4 book ai didi

javascript - 延迟链接 - 然后在上一个调用因错误完成时调用成功回调

转载 作者:行者123 更新时间:2023-12-02 18:14:18 25 4
gpt4 key购买 nike

我有一个小对话框,应该在关闭之前进行验证,从输入中获取值,然后调用对话框调用者给出的回调。我已经实现将输入处理为采用回调参数的函数,因此链中的每个方法都是异步的。

我想要的是调用 isValid,在成功回调时调用 getValues,在成功回调时调用 okCallback。这是我的代码:

var self = this
this.isValid().then(lang.hitch(this, this.getValues), function(){
console.log('Object invalid')
return false
}).then(function(item) {
self.okCallback(item)
})

问题是,即使 isValid() 因错误完成,调用 okCallback 的最终 then() 也会被调用,并且未调用 getValues() 。

这是正常行为吗?如何进行延迟链接,以便只有在之前的一切都成功的情况下才会调用最终的成功回调?

最佳答案

是的,这是正常行为。您已经处理了

中的错误
function(){
console.log('Object invalid')
return false
})

从您返回非错误值的地方(false)。要继续处理错误,请抛出另一个错误、抛出相同的错误,或者不使用 then 的第二个参数,而使用单独的 addErrback。或者将错误处理程序放在 .then(lang.hitch(this, this.okCallback)) 之后,这样它也可以处理来自 getValues 的错误,而不会影响 okCallback.

关于javascript - 延迟链接 - 然后在上一个调用因错误完成时调用成功回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19446753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com