【问题标题】:Transform SignalProducer that emits arrays to SignalProducer that emits all elements of the original array将发出数组的 SignalProducer 转换为发出原始数组的所有元素的 SignalProducer
【发布时间】:2016-04-21 10:01:09
【问题描述】:

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

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

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

【问题讨论】:

    标签: ios swift functional-programming reactive-cocoa


    【解决方案1】:

    你可以这样做:

    let firstProducer: SignalProducer<[Element], Error> = // something
    let toSingleElement: [Element] -> SignalProducer<Element, Error> = { SignalProducer(values: $0) }
    
    let secondProducer = firstProducer.flatMap(.Concat, transform: toSingleElement)
    

    您也可以使用Rex 的运算符:uncollect

    【讨论】:

      猜你喜欢
      • 2016-04-12
      • 2015-08-19
      • 2015-09-02
      • 2016-02-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-24
      相关资源
      最近更新 更多