【发布时间】:2020-06-24 19:25:05
【问题描述】:
在我的 TypeScript 应用程序中,我有一个方法可以在内部执行多个 fromPromise 和 toPromise 操作:
myMethod(...): Promise<string> {
return fromPromise(this.someService1.someMethod1(...)).pipe(
mergeMap(param => fromPromise(this.someMethod2(...))),
map(param => getSomethingFromParam(param)),
).toPromise();
}
someMethod1 和 someMethod2 也在内部使用 toPromise 和 fromPromise。
我明白,如果我这样说,它看起来很乱。然而,原因是在每个服务中都有一个干净的 API(例如,我主要使用 someMethod1 和 someMethod2 的结果作为 Promise,所以我将它们的内部 observable 转换为 Promise 并像这样公开它)。
我当然可以重构整个事情,让我的服务公开更多方法,例如,我可以调用一个方法,直接返回我一个 Observable 而不是 Promise。
我的问题是:我需要这样的重构吗?
换句话说:目前我的服务的 API 非常干净,它们只暴露 Promise。但是每当我想从 rxjs 运算符中受益时,我都必须使用 fromPromise 和 toPromise。所以我想保持目前的状态,除非这些操作很昂贵(就性能而言)。
【问题讨论】:
标签: typescript rxjs es6-promise rxjs6 rxjs-observables