Babel-node脚本失败'意外标记'syntaxError on '线
Babel-node script failed with 'Unexpected token' syntaxError on 'await' line
我有一个脚本,从Firebase读取一堆信息,和then
处理它。这涉及到对外部数据源的一些异步调用,为此我想使用async
和await
。在这个npm项目中,我已经成功地做到了这一点,所以我不明白为什么它现在不起作用。这是我的。babelrc文件:
{
"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) {
return dbRef.once('value').then(function(snapshot) {
var items = snapshot.val();
for (key in items) {
var priceUrl = "some.url.com"
items[key] = await requestPrices(items[key], priceUrl);
}
}
}
与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
在同一个项目中运行,它有异步部分,工作得很好……不知道我错过了什么。如果重要的话,babel-node -V
给出了v6.4.0。
您只能在标记为async
的函数中使用await
。在您的例子中,您在没有标记的函数(对.then()
的回调)中运行它。
你可以这样写:
return dbRef.once('value').then(async function(snapshot) { ... });
但是既然你已经在使用async/await
了,你不妨这样重写你的代码:
async function getAllFirebaseDocs(dbRef) {
let snapshot = await dbRef.once('value');
let items = snapshot.val();
for (let key in items) {
let priceUrl = "some.url.com"
items[key] = await requestPrices(items[key], priceUrl);
}
// I assume that you want to return `items`; your original code doesn't return anything.
return items;
}
相关文章:
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- I'我设计了一个下拉菜单,onclick会出现,而on blur会消失
- window.on.scroll事件未启动
- Socket.io on Mozilla Rhino
- CSS中的游标属性似乎不适用于USB On The Go
- jQuery点击ON现在使用.load触发关闭
- 未捕获的SyntaxError:具有服务器变量的意外标识符
- JQuery.on(“keydown”)追加到页面时不工作
- 使用.on动态添加jquery/js不知道的html元素
- angularjs$valid-on-dates在firefox中报告错误
- addEventListener on NodeList
- 当我在节点上拖动鼠标时,我如何防止使用d3.ehavior.zoom().on(“缩放”,重绘)
- jQuery 1.7.2:.on()在一个页面上工作;Don’别再干别的了
- SyntaxError:缺少;before语句使用AJAX
- Jquery on单击“显示信息”
- 平均值.on(事件[,选择器][,数据],处理程序)
- 多个jQuery.on()事件无法运行xBrowser(取决于顺序)
- 如何使jQuery的“bind”或“on”事件处理程序幂等
- Babel-node脚本失败'意外标记'syntaxError on '线
- 错误处理-JavaScript:Catch not hit on“;未捕获的SyntaxError”;[铬]