Firebaseからの情報を読み込んでいるスクリプトがあり、then
がそれを処理しています。これには、外部データソースへの非同期呼び出しがいくつか含まれており、そのためにasync
とawait
を使用します。私はこの非常にnpmのプロジェクトでこれをうまくやったので、今はなぜうまくいかないのか分かりません。これは私の.babelrcファイルです:Babel-nodeスクリプトが '予期しないトークン' syntaxError 'await'行で失敗しました
{
"presets": ["es2015", "stage-0", "react"],
"plugins": ["syntax-async-functions","transform-regenerator"]
}
そして、これは私のコードの要旨です:
var config = {
apiKey: "key",
authDomain: "myProject.firebaseapp.com",
databaseURL: "https://myProject.firebaseio.com",
storageBucket: "myProject.appspot.com",
messagingSenderId: "id"
};
Firebase.initializeApp(config);
var dbRef = Firebase.database().ref();
getAllFirebaseDocs(dbRef);
async function getAllFirebaseDocs(dbRef) {
\t return dbRef.once('value').then(function(snapshot) {
\t \t var items = snapshot.val();
for (key in items) {
var priceUrl = "some.url.com"
\t \t items[key] = await requestPrices(items[key], priceUrl);
}
}
}
\t \t
それはSyntaxError: testScript.js: Unexpected token
でawait
行に失敗しています。そして、このような奇妙なボックス文字と33mと39mのコードの束:[33m][39m[1m,[22m priceUrl[94m[1m)[22m[39m[1m;[22m
。
私はbabel-node testScript.js
でスクリプトを実行しています。私はbabel-node
と同じプロジェクトで実行する別のスクリプトを持っているので、この作品を知っているとそれはうまく動作する非同期の部分があります...私はこの1つを見逃しているか分からない。問題がある場合は、babel-node -V
がv6.4.0を返します。
インライン非同期にして再配置します非同期)、それは私に新しいエラーを与えます: 'あなたはノード型ForAwaitStatementの訪問者を私たちに与えましたが、それは有効な型ではありません。これが起こっている行番号を私に与えないでください。 – IronWaffleMan
ああ、私はそれを解決しました。私のbabel-coreを6.18.2にアップグレードし、私の.babelrcファイルから 'stage-0'を削除しました。今、私のスクリプトが動作します、ありがとう:) – IronWaffleMan