Swift联合收割机-等待所有发布者

Swift联合收割机-等待所有发布者,swift,combine,Swift,Combine,我正在尝试使用Swift combine运行许多具有相同结果的任务。 目前,每个任务都是一个发布者,将发出一个结果。现在我面临一个问题,我必须等待所有发布者发出元素,然后继续。有点像调度组。我找到了zip(带有:::)运算符,它接受4个发布者 但是,如果您有一个发布者数组(如果它们发出相同类型的元素),该怎么办?有办法吗 您可以使用MergeMany创建一个下游,从多个上游接收所有发出的值,然后在合并发布服务器上调用collect(),一次发出所有值 let pubs = [Just(1),J

我正在尝试使用Swift combine运行许多具有相同结果的任务。 目前,每个任务都是一个发布者,将发出一个结果。现在我面临一个问题,我必须等待所有发布者发出元素,然后继续。有点像调度组。我找到了zip(带有:::)运算符,它接受4个发布者


但是,如果您有一个发布者数组(如果它们发出相同类型的元素),该怎么办?有办法吗

您可以使用
MergeMany
创建一个下游,从多个上游接收所有发出的值,然后在合并发布服务器上调用
collect()
,一次发出所有值

let pubs = [Just(1),Just(2),Just(3)]
let downstream = Publishers.MergeMany(pubs).collect()

那么,您希望您的下游发布服务器在何时发布什么呢?一旦所有上游成功完成,它是否应该在一个数组中同时发出其上游发出的所有值?或者你想让它们一个接一个地发出,就像它们从上游发出一样,然后在所有上游完成后让下游完成?@DávidPásztor我想让我的下游在一个数组或任何其他集合中发出所有值,在所有上游发出值之后,“如果你有一个发布者数组”怎么办是什么意思?显示一些代码。你可以在这里使用多播操作符作为参考