【发布时间】:2018-06-21 22:22:42
【问题描述】:
我在 TypeScript 中有以下功能:
private async deleteSelectedLuminaires (): Promise<any[]> {
return this.dialogService.open({ viewModel: DeleteLuminaire, model: 'Cancel or Ok', lock: false })
.whenClosed((response) => {
if (!response.wasCancelled) {
const requests = this.selectedSerials
.map(async (serial) => this.luminaireApi.removeLuminaire({ serial }))
return Promise.all(requests)
}
})
}
this.luminaireApi.removeLuminaire 函数返回 Promise。 在此功能中,我通过 Dialog 服务提出问题以删除一些项目。 当我删除对话框时,一切正常,但上面的代码给了我以下错误:
错误 TS2345: 类型参数 '(response: DialogCloseResult) => 承诺 | undefined' 不可分配给类型参数 '(值:DialogCloseResult)=> 任何[] |许诺”。类型 '承诺 | undefined' 不可分配给类型 'any[] | 许诺”。 类型“未定义”不是 可分配给类型 'any[] | PromiseLike'。
我确定问题在于同时使用 dialog 和 Promise.all,但我不知道为什么。 你能帮我解决吗?
【问题讨论】:
标签: typescript promise dialog