此函数读取我所有的Movie文档并解析某些属性;在我的Person Collection中创建新文档。
错误消息:-------------------------------------------- ----
等待Person.create({ ^^^^^ SyntaxError:await仅在异步功能中有效
答案 0 :(得分:0)
结帐Promise.all()
:
https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Promise/all
它使您可以等待多个承诺。
答案 1 :(得分:0)
修改
正如@ jfriend00 Array.forEach expects a synchronous function所指出的,它不处理Promises / async / await。要使用异步和等待,您应该将Array.forEach
的所有用法替换为for循环:
for (const movie of movieObj) { ... }
关于等待多个异步调用,如果您希望这些调用真正是异步的,而不是等待每个单独的调用,则可以使用Promise.all
在异步调用的 array 上等待。由于它接受一个承诺数组,因此您将要使用Array.map
。例如,您可以这样做:
await Promise.all(arrayWriters.map((el) => Person.create(...)));