Typescript Promise.all for Map



我想用ArrayMap:做以下演示

export class Example {
// No errors
public withArray(): Promise<Item[]> {
var promises: Promise<Item>[] = [];
promises.push(Promise.resolve(Item));
return Promise.all(promises);
}
// Issues with initialisation 
public withMap(): Promise<Map<Item, Item>> {
var promises: Promise<Map<Item, Item>> = new Map();
promises.push(Promise.resolve([Item, Item]));
return Promise.all(promises);
}
}

它抱怨以下错误消息:

Type 'Map<any, any>' is missing the following properties from type 'Promise<Map<Item, Item>>': then, catch, finally

我的问题是,如何在promises上定义类型Map,以便将[Key, Value]添加到映射中,然后返回该映射。

TL;DR:var promises = Map<Item, Promise<Item>> = new Map()

写入CCD_ 7的另一种方式是CCD_。请注意,这两种情况指示相同:PromiseArray应使用Item解决阵列->承诺->项目。

在第二种情况下,您正在键入Promise<Map<Item, Item>>,这是一个Promise->映射->项,而不是映射->承诺->项目。你要找的是Map<Item, Promise<Item>>

此外,该代码似乎还有很多其他问题。请注意,Map没有push方法。

最新更新