2016-04-10 55 views
24

Quando si tenta di utilizzare async/attendono in reagiscono-native, sto ottenendo il seguente errore:errore utilizzando async/attendono in React Native

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(); 

Il mio file .babelrc è:

{ "presets": ["react-native", "es2015", "babel-preset-stage-3"] } 

risposta

76

Potrebbe mancare semplicemente la parola chiave async alla riga 48.

Aggiornare il codice per utilizzare il async ke yword prima della parola chiave function:

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

o quando si utilizza una funzione di freccia, mettere la parola chiave async prima della lista dei parametri:

renderScene: async (route, nav) => { 
     try { 
      const response = await signIn.isLoggedIn(); 

In JavaScript, la parola chiave async è un decoratore che avverte il runtime che il contenitore allegato utilizzerà la parola chiave await, quindi le vedrai sempre usate insieme. Ecco perché sentirai che le persone si riferiscono a questa sintassi come la sintassi async/await.

In poche parole: Non è possibile utilizzare await senza async.

Edit: Se si dichiara questo all'interno di una classe, poi basta essere sicuri che il vostro syntax is correct:

class MusicTulip extends Component { 
    async renderContent() { 
     const response = await signIn.isLoggedIn(); 
    } 
} 

Spero che questo aiuti!

+0

Ha molta combinazione di permutazione ed è stata rimossa. L'aggiunta di async fornisce anche un errore di token imprevisto, il codice sorgente aggiornato – MusicMan

+0

@ MusicMan, ho aggiunto una nota sulla sintassi. Spero che questo ti aiuti. – radiovisual

+0

Hey grazie, funziona, ma ho un errore successivo babelHelpers tipo di non è una funzione babelHelpers.typeof (valore) non è definito – MusicMan