地图的打字稿 Promise.all
Typescript Promise.all for Map
我想执行以下使用 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]
添加到 Map 然后返回。
TL;DR: var promises = Map<Item, Promise<Item>> = new Map()
.
另一种写 Promise<Item>[]
的方法是 Array<Promise<Item>>
。
请注意,这两种情况表示相同:Promise
中的 Array
应该用 Item
解析。 数组 -> 承诺 -> 项目。
在你的第二种情况下,你正在输入 Promise<Map<Item, Item>>
,这是一个 Promise -> Map -> 项目,而不是 Map -> promises -> 项目。您正在寻找的是 Map<Item, Promise<Item>>
.
此外,该代码似乎还有很多其他问题。请注意 Map
没有 push
方法。
我想执行以下使用 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]
添加到 Map 然后返回。
TL;DR: var promises = Map<Item, Promise<Item>> = new Map()
.
另一种写 Promise<Item>[]
的方法是 Array<Promise<Item>>
。
请注意,这两种情况表示相同:Promise
中的 Array
应该用 Item
解析。 数组 -> 承诺 -> 项目。
在你的第二种情况下,你正在输入 Promise<Map<Item, Item>>
,这是一个 Promise -> Map -> 项目,而不是 Map -> promises -> 项目。您正在寻找的是 Map<Item, Promise<Item>>
.
此外,该代码似乎还有很多其他问题。请注意 Map
没有 push
方法。