在React Native中使用async/await时出错

Mus*_*Man 51 javascript babeljs react-native ecmascript-next

当试图在react-native中使用async/await时,我收到以下错误:

    uncaught error Error: SyntaxError: /Users/senthilsivanath/Documents/MusicTulip/index.ios.js: Unexpected token (50:23)
  48 |   renderScene: function(route,nav) {
  49 |     try {
  50 |          const response = await signIn.isLoggedIn();
Run Code Online (Sandbox Code Playgroud)

我的.babelrc档案是:

{ "presets": ["react-native", "es2015", "babel-preset-stage-3"] }
Run Code Online (Sandbox Code Playgroud)

rad*_*ual 146

您可能只是错过了async第48行的关键字.

更新代码以在async关键字前使用function关键字:

renderScene: async function(route, nav) {
    try {
        const response = await signIn.isLoggedIn();
        // ...
Run Code Online (Sandbox Code Playgroud)

或者在使用箭头功能时,将async关键字放在参数列表之前:

 renderScene: async (route, nav) => {
        try {
            const response = await signIn.isLoggedIn();
Run Code Online (Sandbox Code Playgroud)

在JavaScript中,async关键字是一个装饰器,用于警告运行时连接的机箱将使用await关键字,因此您始终可以看到它们一起使用.这就是为什么你会听到人们将这种语法称为async/await语法.

简单地说:你不能await没有async.

编辑:如果你在一个类中声明这个,那么只需确保你的语法是正确的:

class MusicTulip extends Component {
    async renderContent() {
        const response = await signIn.isLoggedIn();
    }
 }
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!