合并等效于 RxJS iif

Combine equivalent of RxJS iif

iif 是一个有用的运算符,可以决定在运行时订阅哪个 Observable。 Swift Combine framework with publisher 中是否有等效项?如果不是,有什么好的解决方法?

没有直接的等效项,但您可以使用 Deferred 发布者:

let p1: AnyPublisher<Int, Never> = ...
let p2: AnyPublisher<Int, Never> = ...

let condition = Bool.random()

let iif = Deferred { condition ? p1 : p2 }