在联合出版集团中推出2家出版商的更好方式?

6qftjkof  于 2022-10-23  发布在  Swift
关注(0)|答案(1)|浏览(147)

我想产品2出版商p1p2

import Combine
import Foundation

let p1 = [1].publisher
let p2 = [1, 2, 3, 4, 45].publisher

var bag = Set<AnyCancellable>()

p1.sink { v1 in
    p2.sink { v2 in
        print(v1, v2)
    }
    .store(in: &bag)
}
.store(in: &bag)

结果正如预期的那样产生了。
Combine运算符有没有更好的方法来做到这一点?
谢谢

vuktfyat

vuktfyat1#

如果您想要创建一个Publisher,只要两个上游发布者中的任何一个发出新值,它就会发出两个上游发布者的最新值,您应该使用CombineLatest

let combined = Publishers.CombineLatest(p1, p2)

combined.sink {
  print($0)
}.store(in: &bag)

产出:

(1, 1)
(1, 2)
(1, 3)
(1, 4)
(1, 45)

相关问题