【发布时间】:2018-11-19 22:03:43
【问题描述】:
我有一个函数
transformAllUser = async (userList): Promise<any> => {
return new Promise((resolve, reject) => {
const userListArray = [];
userList.forEach((user) => {
// do something like or something else
userListArray.push({obj : user})
})
resolve(userListArray )
})
}
并获得该值:
const val = await transformAllUser(userList);
console.log(val) // its empty.
我得到一个空数组,我在这里做错了什么,所以我的代码没有等待forEach 完成
【问题讨论】:
-
您向我们展示的代码中没有任何内容可以解释您所看到的行为。也许
const val = await transformAllUserAndSubscription (userList)不在异步函数中。您需要提供minimal reproducible example -
@jhc — 它循环在
userList而不是userListArray,我们看不出它有什么价值。 -
@BhojendraRauniyar — 您只能等待承诺。异步函数总是返回承诺。这么多就好了。
-
我相信我之前已经看到了这个问题的答案 - 这与
forEach将每次迭代视为一个单独的方法有关,而不必像下面那样执行一组顺序指令,比如说,一个带有起始索引和结束索引的传统for循环。仍在尝试找到我阅读此信息的确切位置并将发布链接。 -
@AJC24 — 这取决于循环内正在做什么。 OP 需要提供minimal reproducible example
标签: javascript node.js promise async-await