【发布时间】:2021-04-20 22:05:09
【问题描述】:
我正在尝试编写一些代码,允许我遍历数组并为数组中的每个元素执行一些异步工作。这个想法是执行异步工作,从中获取一个值,然后将对象的属性设置为该值,然后继续下一个。完成后,我想返回结果对象。
问题是我的异步代码不能正常工作,在运行任何异步代码之前返回了未初始化的变量。我也不完全确定 forEach 之前的 await 是否在做任何事情。
generate(): Promise<Properties>{
return new Promise<Properties>(async resolve => {
let columns = this._propertyDefinitionRepo.columnNames;
let properties: Properties;
await columns.map(async columnName => {
return new Promise<void>(async resolve => {
let distinctValues = await this.doAsyncWork(columnName);
properties[this.columnNameToPropertyName(columnName)] =
this.buildPropertyDefinition(columnName, distinctValues);
resolve();
})
});
resolve(properties);
})
}
【问题讨论】:
-
这是打字稿,不是吗?您可能希望添加该标签。
-
是的,添加了。谢谢。
标签: javascript typescript asynchronous