【发布时间】:2020-12-02 15:07:48
【问题描述】:
我目前正在尝试实现以 base64 格式缓存文档的服务。我希望这个服务从 sessionStorage 中获取文档,如果 sessionStorage 中没有文档,则从 IRequestService 中获取它,然后将其保存到 sessionStorage。我尝试了这种方法,但出现类型错误
Type 'Promise<void | GetDocumentResult>' is not assignable to type 'Promise<GetDocumentResult>'.
代码如下所示:
getDocument(requestId: string, documentId: DocumentID, requestService: IRequestService): Promise<GetDocumentResult> {
if (this.storageKey in sessionStorage) {
const documentsMap: Map<DocumentID, GetDocumentResult> = new Map(JSON.parse(sessionStorage.getItem(this.storageKey)!))
if (documentsMap.get(documentId) !== undefined) {
return new Promise(resolve => resolve(documentsMap.get(documentId)!))
}
}
return requestService.getDocument(requestId, documentId)
.then(value => {this.setDocument(documentId, value)})
}
我期待 Promise
有人知道为什么会这样吗?
谢谢
【问题讨论】:
标签: javascript typescript promise