等待 returns Promise 而不是值的异步映射函数
Asynchronous map function that await's returns Promise instead of value
我有这个代码
async function addFiles(dir,tree) {
return (await readDir(dir))
.map(async (name) => {await readDir(dir); return name;})
}
但不幸的是,它只是 returns 一堆承诺,因为没有等待 map 中的异步函数。我想知道是否有任何方法可以等待上面代码中的映射函数。
尝试
async function addFiles(dir,tree) {
const files = await readDir(dir)
await Promise.all(files.map(async (name) => {await readDir(dir); return name;})
}
如果您使用的是 bluebird,则可以将这种更简洁、更短的语法与 Promise.map
结合使用
async function addFiles(dir, tree) {
const files = await readDir(dir);
return Promise.map(files, async (name) => { await readDir(dir); return name; });
}
我有这个代码
async function addFiles(dir,tree) {
return (await readDir(dir))
.map(async (name) => {await readDir(dir); return name;})
}
但不幸的是,它只是 returns 一堆承诺,因为没有等待 map 中的异步函数。我想知道是否有任何方法可以等待上面代码中的映射函数。
尝试
async function addFiles(dir,tree) {
const files = await readDir(dir)
await Promise.all(files.map(async (name) => {await readDir(dir); return name;})
}
如果您使用的是 bluebird,则可以将这种更简洁、更短的语法与 Promise.map
结合使用async function addFiles(dir, tree) {
const files = await readDir(dir);
return Promise.map(files, async (name) => { await readDir(dir); return name; });
}