将发出数组的 SignalProducer 转换为发出原始数组所有元素的 SignalProducer

Transform SignalProducer that emits arrays to SignalProducer that emits all elements of the original array

假设我有一个 SignalProducer<[Element], Error> 启动时会发出一个元素数组。

我想将 SignalProducer 转换为新的 SignalProducer<Element, Error>,它连续发出 [Element] 数组的每个元素。

这样做的最佳方法是什么?

你可以这样做:

let firstProducer: SignalProducer<[Element], Error> = // something
let toSingleElement: [Element] -> SignalProducer<Element, Error> = { SignalProducer(values: [=10=]) }

let secondProducer = firstProducer.flatMap(.Concat, transform: toSingleElement)

您也可以使用Rex's operator: uncollect