react-native - React native 在异步函数上不显示错误
问题描述
我在 react-native 和 async 函数中遇到了一个奇怪的行为。
这是代码,它是一个简单的组件,带有一个由按钮调用的异步函数:
export default class HomeScreen extends Component {
constructor(props) {
super(props)
}
async testError() {
console.log('enter testError')
console.log(object)
console.log('finish testError')
}
render() {
// console.log('HomeSCreen: ', this.props.navigation)
return (
<View style={{flex: 1}}>
<TouchableOpacity onPress= {this.testError}>
<Text>TEST BUTTON</Text>
</TouchableOpacity>
</View>
)
}
}
如果在 Chrome 控制台中按 TEST BUTTON,我看不到任何错误,并且脚本在“输入 testError”处停止。
如果我从 testError() 中删除 async 关键字,则错误是
"node_modules\react-native\Libraries\Core\ExceptionsManager.js:76 object is not defined"
,这是正确的,因为没有声明“对象”。
为什么会这样?
谢谢你。
解决方案
因为该功能在后台,它不会记录输出,而是会给你可能的未处理的承诺拒绝。
console.log(object)
对象在哪里?