如何将 Promise<Observable<T>> 转换为 Observable<T>?

How to convert Promise<Observable<T>> to Observable<T>?

我有这个功能:

someFunction(): Promise<Observable<boolean>> {
  return Promise1()
           .then(text => Promise2(text))
           .then(resultString => Observable(resultString))
}

其中 Promise1Promise2 是 return 承诺的函数,Observable 是 return 可观察的函数。

因此,为了获得可观察的值,我必须进行下一次调用:

someFunction().then(res => res.subscribe(value => //get Value));

有没有办法更改 someFunction 以直接从 observable 获取值?

someFunction().subscribe(res => //getValue);

试试这样的东西?

  • from 将 promise 转换为 observable
  • switchMap 也进行这种转换,因此您可以 return 来自该 lambda
  • 的承诺
someFunction(): Observable<boolean> {
  return from(promise1()).pipe(
    switchMap(text => promise2(text)),
    switchMap(resultString => observable1(resultString))
  );
}