Angular 错误和 RXJS 承诺
Error in Angular and RXJS promise
我想将 Angular 应用程序从 2 升级到 4,但出现以下错误:
Type 'Promise<void | Store>' is not assignable to type 'Promise<Store>'.
类型 'void | Store' 不能分配给类型 'Store'。
类型 'void' 不可分配给类型 'Store'.
有问题的行是这样的:
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
.
的错误
当一个 JavaScript 函数没有 return 任何东西时它 return 默认情况下 undefined
- 所以你的承诺要么是商店(来自 then
) 或无效(来自 catch
).
IMO 的正确解决方案是完全删除 .catch
子句,并依靠承诺拒绝自动记录到您的控制台。
我想将 Angular 应用程序从 2 升级到 4,但出现以下错误:
Type 'Promise<void | Store>' is not assignable to type 'Promise<Store>'.
类型 'void | Store' 不能分配给类型 'Store'。 类型 'void' 不可分配给类型 'Store'.
有问题的行是这样的:
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
.
当一个 JavaScript 函数没有 return 任何东西时它 return 默认情况下 undefined
- 所以你的承诺要么是商店(来自 then
) 或无效(来自 catch
).
IMO 的正确解决方案是完全删除 .catch
子句,并依靠承诺拒绝自动记录到您的控制台。