繁体   English   中英

Angular和RXJS Promise中的错误

[英]Error in Angular and RXJS promise

我正在将Angular应用程序从2升级到4,并且遇到以下错误:

 Type 'Promise<void | Store>' is not assignable to type 'Promise<Store>'.

输入“ void | 商店”不能分配给“商店”类型。 类型“无效”不能分配给类型“存储”。

有问题的行是这样的:

return this.http.get(url, { headers: this.headers })
            .toPromise()
            .then(response => response.json().data as Store)
            .catch((err) => { console.log('An error occurred under StoreService.StoreGetById', err); });

这在我升级之前已经奏效,而且我对RxJS还是很陌生。

承诺拒绝被自动记录-如Cartant的注释所解释-通过.catch引起错误的错误| Void | Void

当JavaScript函数不返回任何内容时,默认情况下它不会返回undefined的-因此,您的承诺是针对商店(来自then )或void(来自catch )。

IMO的正确解决方案是完全删除.catch子句,并.catch依靠自动将拒绝承诺记录到控制台。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM