swift - 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()
推荐阅读
- opencv - 在图像的明亮部分周围画一个边框
- load - 我需要多少负载均衡器?
- python-3.x - 使用 Tkinter 调整顶层窗口的背景图像
- spring - 禁用集成流程 - Spring 集成
- angular - 在打开模式窗口时使用 bsmodalref 时,会发生自动滚动
- c# - 当 CurrentCulture 不是 Invariant 时,使用 OpenXML SDK 生成的 excel 中的错误
- python-3.x - 尝试使用 Cuda 10.0 和 Cudnn 7.4 拟合模型时出错
- powershell - 在远程 SSH 服务器上运行本地 PowerShell 脚本
- python - 错误消息 - IndexError:索引 0 超出轴 0 的范围,大小为 0
- ios - 收到推送时如何通过模式振动iphone?