我想用Array
和Map
:做以下演示
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_。请注意,这两种情况指示相同:Promise
的Array
应使用Item
解决阵列->承诺->项目。
在第二种情况下,您正在键入Promise<Map<Item, Item>>
,这是一个Promise->映射->项,而不是映射->承诺->项目。你要找的是Map<Item, Promise<Item>>
。
此外,该代码似乎还有很多其他问题。请注意,Map
没有push
方法。