rxjs:有 "joining" 替代 withLatestFrom 运算符吗?

rxjs: any "joining" alternative to withLatestFrom operator?

observable1.pipe(
  withLatestFrom(observable2),
  .. do something with both emitted observable values
)

withLatestFrom 的问题是,如果 observable2observable1 之前没有发出任何事件,那么它就是死代码。我应该如何修改代码以确保 do something with both emitted observable values 在调用之前至少发出一次两个可观察值?也许 forkJoin?

有一些包装

看起来像是 combineLatest 运算符的用例。该运算符采用一组可观察对象并等待每个对象至少发出一次。一旦所有的 observables 都发出了,操作符就会第一次发出。之后,它会在每次任何可观察对象发出时发出。

您可以使用 startWith() 强制执行第一次发射,您可以根据需要将其应用于可观察对象 1 和 2。

observable1.pipe(
  withLatestFrom(observable2.startWith(null)),
  .. do something with both emitted observable values
)

如果您正在寻找一个 pipable 运算符而不是 combineLatest 函数,您可以使用 RxJS combineLatestWith

observable1.pipe(
  combineLatestWith(observable2),
  // ... do something with both emitted observable values
)