2017-10-16 9 views
1

je Node.js v8.3.0, et ceci dans ma package.json:Firebase Async Fonction Erreur de syntaxe

"engines": { 
    "node": ">=8.3.0" 
    } 

Et mon code de test pour await/async:

async function x() { 
    return "test"; 
} 

exports.asyncTest = functions.https.onRequest((request, response) => async function() { 
    response.end(await x()); 
}); 

attendu sortie: test
sortie observé:

Is there a syntax error in your code? 
Detailed stack trace: /user_code/index.js:12 
async function x() { 
     ^^^^^^^^ 
SyntaxError: Unexpected token function 
    at createScript (vm.js:56:10) 
    at Object.runInThisContext (vm.js:97:10) 
    at Module._compile (module.js:542:28) 
    at Object.Module._extensions..js (module.js:579:10) 
    at Module.load (module.js:487:32) 
    at tryModuleLoad (module.js:446:12) 
    at Function.Module._load (module.js:438:3) 
    at Module.require (module.js:497:17) 
    at require (internal/module.js:20:19) 
    at getUserFunction (/var/tmp/worker/worker.js:372:24) 

Répondre

3

Les fonctions cloud L'exécution de Firebase est actuellement Node.js v6.x, donc async/await n'est pas supporté. On s'attend à ce que Node v8.x soit pris en charge après l'entrée du LTS (Long-Term Support). Dans le même temps, vous devrez utiliser un transpileur comme Babel ou TypeScript pour tirer parti de async/await.

+2

FYI: Je ne sais pas exactement qui a attribué la note, mais c'est la bonne réponse. Je suis un Firebaser et travaille en étroite collaboration avec l'équipe Cloud Functions. –

+0

Merci pour l'info, avez-vous une idée quand v7.6 sera pris en charge? –

+2

Nous n'annonçons pas de calendrier précis pour les travaux futurs, mais le sera un peu après le 31 octobre (date à laquelle Node.js v8 deviendra LTS). –