Swift Combine - 等待所有发布者

标签 swift combine

我正在尝试使用 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/

相关文章:

Swift - 从 CollectionView 中的相册中获取照片并保持分辨率

ios - 快速组合 : prepend() before share() prevents initial sink execution

ios - 快速组合 : `first(_ n: Int)` equivalent to RxSwift `take(_ n: Int)` ?

SwiftUI @Binding 不刷新 View

swift - SpriteKit : detect if UILongPressGestureRecognizer tapped child node

ios - 仅为 UITableView 中的一个部分启用编辑模式

ios - 像素化 UIImage 返回具有不同大小的 UIImage

swift - 如何使用组合将异步加速度计更新发送到服务器

Swift Combine发布者与完成处理程序以及何时取消

swift - 在循环上编写 BLE 命令无法获得所有响应 - Swift