Javascript 巴别塔节点:一个等待工作,多个不工作';T使用SyntaxError中断:意外标记

Javascript 巴别塔节点:一个等待工作,多个不工作';T使用SyntaxError中断:意外标记,javascript,node.js,asynchronous,firebase,babeljs,Javascript,Node.js,Asynchronous,Firebase,Babeljs,我有一个使用babel节点运行的脚本,它与其中一个await一起工作,但是当我添加另一个await时,它会抛出一个SyntaxError:Unexpected token错误,看起来像这样: SyntaxError: C:/Users/User/Documents/thing/updateFirebase.js: Unexpected token (73:12) [0m 71 | [31m'votes'[39m[

我有一个使用
babel节点运行的脚本,它与其中一个
await
一起工作,但是当我添加另一个
await
时,它会抛出一个
SyntaxError:Unexpected token
错误,看起来像这样:

SyntaxError: C:/Users/User/Documents/thing/updateFirebase.js: Unexpected token (73:12)
    [0m  71 |                                      [31m'votes'[39m[1m:[22m [35m0[39m
  72 |                          [32m}[39m[1m;[22m
> 73 |                          await writeNewData[94m[1m([22m[39mcard[1m.[22mname[1m,[22m newData[1m,[22m newEditionArrayId[94m[1m)[22m[39m[1m;[22m
     |             ^
  74 |                  [32m}[39m
  75 |                  [32m}[39m
  76 |                  [36melse[39m [32m{[39m [90m
我正在使用Firebase的实时数据库,我的第一个等待就是等待获取数据块:

let snapshot = await dbRef.once('value');
然后我做了一些其他的事情,进入一个循环,然后做这个:

await writeNewData(book.name, newData, newEditionArrayId);
这就是被调用的函数:

function writeNewData(name, object, arrayId) {
    var localMidRef = Firebase.database().ref(name + "/editions/"+ arrayId);
    console.log("writing new data to "+name);
    return localMidRef.set(object);
}   
我假设
set()
是异步工作的,因为您可以向它传递回调(我还没有在Firebase的文档中找到任何证明它的文档…)。但我不明白为什么该死的wait关键字会在第二次使用时而不是第一次使用时搞砸解析

我的
.babelrc
文件:

{
  "presets": ["es2015", "react"],
  "plugins": ["syntax-async-functions","transform-regenerator"]
}

如果我把
stage-0
放在那里,它就会停止工作。

首先修复提示,显示ANSI颜色,而不是转义码,这样我们就不必猜测错误在哪里


您还可以使用await和babel进行简单的独立测试,以确保这不是问题。

首先修复提示以显示ANSI颜色而不是转义码,这样我们就不必猜测错误在哪里


你也可以用await和babel做一个简单的独立测试,以确保这不是问题。

我认为这不是await。什么是完整的错误消息,什么是意外的标记?将错误消息添加到OP。我不知道它是哪个标记,因为错误消息也有这些矩形字符,而箭头指向的正是矩形字符。当你说“进入循环”时,你是在使用
forEach
?因为它们将位于foreach回调中,而foreach回调不是异步函数。向我们展示调用
writeNewData
@loganfsmyth的真实代码啊,是的。。。是的。这可能就是原因。我想把它换成正常的
for
循环会解决这个问题吗?我不认为这是等待。什么是完整的错误消息,什么是意外的标记?将错误消息添加到OP。我不知道它是哪个标记,因为错误消息也有这些矩形字符,而箭头指向的正是矩形字符。当你说“进入循环”时,你是在使用
forEach
?因为它们将位于foreach回调中,而foreach回调不是异步函数。向我们展示调用
writeNewData
@loganfsmyth的真实代码啊,是的。。。是的。这可能就是原因。我假设将其切换为正常的
for
循环可以解决问题?我知道不是,因为我的第一次等待工作正常。它确实
let snapshot=wait dbRef.one('value')
很好。哦,谢谢你帮我逃走了。。。我不知道是什么导致了这些盒子…我知道不是,因为我的第一次等待很好。它确实
let snapshot=wait dbRef.one('value')
很好。哦,谢谢你帮我逃走了。。。我不知道是什么导致了这些箱子。。。