Zen*_*Zen 20 javascript async-await typescript ecmascript-next
我有以下的代码,fileStatsPromises
是的Promise<Stats>[]
,无论是foo
和bar
是Promise<Stats>[]
.等待他们的正确方法是什么?我想得到<Stats>[]
.
const files = await readDir(currentDir);
const fileStatsPromises = files.map(filename => path.join(currentDir, filename)).map(stat);
const foo = await fileStatsPromises;
const bar = await Promise.all(fileStatsPromises);
Run Code Online (Sandbox Code Playgroud)
编辑:一个最小的例子.
function makePromise() {
return Promise.resolve("hello");
}
const promiseArray = [];
// const promiseArray = [] as Promise<string>[];
for (let i = 0; i < 10; i++) {
promiseArray.push(makePromise());
}
(async () => {
const foo = await promiseArray;
const bar = await Promise.all(promiseArray);
})();
Run Code Online (Sandbox Code Playgroud)
Wes*_*y92 46
这是对的:
const bar = await Promise.all(promiseArray);
Run Code Online (Sandbox Code Playgroud)
await Promise.all([...])
获取Promise数组并返回一组结果.
bar
将是一个数组: ['hello', ..., 'hello']
您还可以解构生成的数组:
const [bar1, ..., bar10] = await Promise.all(promiseArray);
console.log(bar1); // hello
console.log(bar7); // hello
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11238 次 |
最近记录: |