【发布时间】:2020-04-17 03:19:45
【问题描述】:
我正在从 5 升级到 rxjs v6,我也将我的 typescript 版本从 2.9.2 升级到 3.7.4。在我的一个 angularjs 组件中,我调用了一个返回承诺的服务。为了便于使用,我使用 from rxjs 函数将其转换为组件中的 observable。我的代码看起来像这样(名称与原件不同)。
saveObject(name: string): Observable<void> {
return from(
this.myService.saveMyObject(name)
.then(() => {
//Show Save success on ui
return;
}),
)
.pipe(
catchError((error) => {
// error handling logic
return of(); // this bit was an attempt to fix the problem
}),
);
}
我遇到的问题是组件中的 saveObject 函数返回一个 void 的可观察对象,承诺最终解决为 void 但是当我尝试返回可观察对象时,我收到一条错误消息,指出 observable 不可分配给可观察的。为什么 typescript/rxjs 会推断类型未知,除了进行类型断言以获得正确的类型之外,我还能做些什么。
编辑:完全移除管道并不能解决问题,只是 from(promise) 就足以得到错误,不幸的是,即使这样做告诉 rxjs 它是 void 的承诺也无济于事,它仍然提供同样的错误。
from<Promise<void>>(//promiseCode)
【问题讨论】:
标签: angular typescript rxjs