如何使用await关键词反应原生?

Zac*_*ack 49 react-native

我试图在本机上使用await/async,但是我得到了意外的令牌错误.

我在我的javascript源文件中添加了代码:

var value = await AsyncStorage.getItem('STORAGE_KEY');
Run Code Online (Sandbox Code Playgroud)

我的本机版本是0.15.0.

我是否需要添加一些配置才能使用async/await?

Chr*_*man 58

我在我的本机应用程序中使用async/await,并且无需在我的项目中进行任何配置或启用它.我的用法采用......的形式

async getCache(key){
    try{
        let value = await AsyncStorage.getItem(key);
        return value.json();
    }
    catch(e){
        console.log('caught error', e);
        // Handle exceptions
    }

}
Run Code Online (Sandbox Code Playgroud)

注意: 如果在未使用async显式声明的函数内使用await,则最终会出现意外的令牌语法错误.

  • 请注意,如果在未使用`async`显式声明的函数内使用`await`,则最终会出现'Unexpected token`语法错误. (57认同)
  • 我使用的是0.28.0并且无法使用异步或等待. (3认同)
  • 仔细检查你的.babelrc文件是否设置正确`{"presets":["react-native","es2015","babel-preset-stage-3"]}`你可能会在这里找到一些线索来帮助你排除故障.https://github.com/facebook/react-native/issues/6901 (3认同)

Ste*_*ary 7

我是否需要添加一些配置才能使用async/await?

是.async仍然不是规范的最终部分; 他们目前被认为是"第3阶段"(候选人).

您可以.babelrc使用stage-3预设在您的帐户中启用所有第3阶段语言提案.或者,您可以async添加插件.


And*_*oth 5

如果.babelrc项目的根目录中有文件,则需要添加"react-native"预设:

npm i babel-preset-react-native --save-dev

然后在您的.babelrc文件中添加以下内容:

{
  "presets": ["react-native"]
}
Run Code Online (Sandbox Code Playgroud)

更多信息在这里.