React Native的文档说:
请注意,我们在promise链的末尾调用done() - 始终确保调用done()或者抛出任何抛出的错误。
当我最后有一个捕获块时,它是否是必要的?
dataLayer.enter() {
.then((responseData) => {
console.log('enter responseData ->', responseData);
})
.catch(function(error) {
console.log('enter error ->', error)
});
答案 0 :(得分:0)
如果您的catch
阻止没有问题,则无需在链的末尾添加done()
。在您提供的示例中,它应该没问题。但是,如果catch
尝试输出this.state.foo
的值,则会生成可能被吞噬的错误。 (this.state.foo
在我的潜在问题示例中不起作用的原因是您拥有的catch
函数未绑定到this
上下文并且会导致错误。)添加承诺链末尾的.done()
是一种良好的形式和一点额外的保险。
建议的代码更新:
dataLayer.enter() {
.then((responseData) => {
console.log('enter responseData ->', responseData);
})
.catch(error => {
console.log('enter error ->', error)
})
.done();