Node.js 等待(…of…)不起作用。巴别塔当前环境,节点v10
我已经有一段时间没有从头开始一个nodejs项目了,所以我是一个负责设置和配置eslint、babel等的headscratcher 现在我的LRC是:Node.js 等待(…of…)不起作用。巴别塔当前环境,节点v10,node.js,async-await,babeljs,babel-node,Node.js,Async Await,Babeljs,Babel Node,我已经有一段时间没有从头开始一个nodejs项目了,所以我是一个负责设置和配置eslint、babel等的headscratcher 现在我的LRC是: { "presets": [ [ "env", { "targets": { "node": "10" } } ] ], "plugins": [ [ "transform-runtime", {
{
"presets": [
[
"env",
{
"targets": {
"node": "10"
}
}
]
],
"plugins": [
[
"transform-runtime",
{
"regenerator": true
}
]
]
}
package.json
具有开发依赖项:
"babel-cli": "^6.26.0",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-preset-env": "^1.7.0",
现在我想在对象列表上循环。对于每一个,我都需要执行一些异步任务,我需要等待这些任务,所以我做了:
等待的(const thing of things){
const foo=等待某件事
//等
}
但是当我在dev中运行它时(nodemon通过babel节点),现在在wait上出现了一个语法错误:
for await (const thing of things) {
^
Syntax Error Unexpected token, expected (
at Parser.pp$5.raise (... \node_modules\babylon\lib\index.js:4454:13)
at Parser.pp.unexpected (... \node_modules\babylon\lib\index.js:1761:8)
at Parser.pp.expect (... \node_modules\babylon\lib\index.js:1749:33)
at Parser.pp$1.parseForStatement (... \node_modules\babylon\lib\index.js:2008:8)
etc..
我是否必须更改我的babel配置,和/或我是否完全误解了/await和await/async?我相信您需要该插件来使用for await of语法。我发现了另一个项目,其中我知道
for await of
有效。。。看起来我使用的是旧的babel插件,而不是新的分开的@babel/xxx
libs。在反复安装和卸载stuff之后:这就是成功的babelrc:
{
"presets": [
[
"@babel/preset-env",
{
"targets": {
"node": "10"
}
}
]
],
"plugins": [
[
"@babel/plugin-transform-runtime",
{
"regenerator": true
},
"@babel/preset-env"
]
]
}
至此,我已安装了所有:
- @巴别塔/核心
- @巴别塔/节点
- @巴贝尔/cli
- @巴别塔/预设环境
- @babel/插件转换运行时
因此,我们还必须安装@babel/runtime,安装版本为7.0.0-beta.55。。。现在它已经建立起来了 现在尝试一下。。。会回来报到的!:)哎呀。我唯一能想到的另一个问题是,你能告诉我们什么命令
node-v
print out吗?@jfriend00 thx以获取评论。它不会在顶层,而是在一个异步func中;这只是为了演示它不是我的确切代码。最终,东西
也将成为异步的,所以我知道我将不得不使用for await of nother。我的主要问题是如何编译它,这已经解决了。稍后将掌握语法和适用性。。。