gpt4 book ai didi

angular - Rxjs 类型 Observable 不可分配给 Observable

转载 作者:行者123 更新时间:2023-12-04 13:00:04 28 4
gpt4 key购买 nike

我正在从 5 升级到 rxjs v6,我还将 typescript 版本从 2.9.2 升级到 3.7.4。在我的一个 angularjs 组件中,我调用了一个返回 promise 的服务。为了便于使用,我使用 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,promise 最终解析为 void 但是当我尝试返回可观察的时,我收到一个错误,说 observable 不可分配给 observable< void >.为什么 typescript/rxjs 推断类型未知,除了进行类型断言以获得正确的类型之外,我还能做些什么。

编辑:完全移除管道并不能解决问题,只是 from(promise) 就足以得到错误,不幸的是,即使这样做告诉 rxjs 它是 void 的 promise 也无济于事,它仍然提供相同的错误。
from<Promise<void>>(//promiseCode)

最佳答案

尝试返回 of()完成 observable 并查看它是否有效。

from(this.myService.saveMyObject(name))
.pipe(
mergeMap(()=>of()),
catchError((error) => {
// error handling logic
return of(); // this bit was an attempt to fix the problem
}),
);

关于angular - Rxjs 类型 Observable<Unknown> 不可分配给 Observable<void>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59495917/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com