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

时间:2015-12-01 09:17:52

标签: react-native

我尝试在native native上使用await / async,但是我得到了意外的令牌错误。

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

varchar(120)

我的本​​机版本是0.15.0。

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

4 个答案:

答案 0 :(得分:57)

我在我的本机应用中使用了async / await,并且没有必要在我的项目中配置或启用它。我的用法采用......的形式。

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

}

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

答案 1 :(得分:7)

  

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

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

您可以使用stage-3 preset.babelrc中启用所有第3阶段语言提案。或者,您可以添加just the async plugin

答案 2 :(得分:5)

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

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

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

{
  "presets": ["react-native"]
}

更多信息here

答案 3 :(得分:1)

在阅读本地GitHub问题的this comment后,以下内容对我有用:

添加以下npm模块:

npm install babel-preset-react-native-stage-0 --save

将以下配置添加到.babelrc文件中:

{ presets: ['react-native-stage-0'] }

清除缓存:

$ watchman watch-del-all
$ ./node_modules/react-native/packager/packager.sh --reset-cache