首页 > 解决方案 > 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"

,这是正确的,因为没有声明“对象”。

为什么会这样?

谢谢你。

标签: react-nativeasynchronouserror-handling

解决方案


因为该功能在后台,它不会记录输出,而是会给你可能的未处理的承诺拒绝。

console.log(object) 对象在哪里?


推荐阅读