我正在尝试使用 Swift combine 运行许多具有相同结果的任务。
目前,每个任务都是一个将发出结果的发布者。现在我面临一个问题,我必须等待所有发布者发出元素然后继续。有点像调度组。我发现 zip(with:::_) 操作符需要 4 个发布者。
https://developer.apple.com/documentation/combine/passthroughsubject/3333571-zip
但是如果您有一组发布者(以防它们发出相同类型的元素)怎么办?有没有办法做到这一点?
最佳答案
您可以使用 MergeMany
创建单个下游接收来自多个上游的所有发出的值,然后调用 collect()
在合并的发布者上一次发出所有值。
let pubs = [Just(1),Just(2),Just(3)]
let downstream = Publishers.MergeMany(pubs).collect()
关于Swift Combine - 等待所有发布者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59615078/