cod*_*321 4 reactive-cocoa swift
假设我SignalProducer在数组中有一堆s:
[SignalProducer<Car, NSError>]
Run Code Online (Sandbox Code Playgroud)
我如何将它们结合起来以获得一个SignalProducer等待所有这些并得到所有Cars的?
SignalProducer<[Car], NSError>
Run Code Online (Sandbox Code Playgroud)
使用案例:向端点请求http://cardatabase.com/:car_id一堆车ID,从而获得多个Car对象.问题是,该URLSession功能只能得到SignalProducer一个Car在一段时间.问题是如何结合其中许多.
(编辑:Yikes,这让我想起了很多sequenceAHaskell.我可以在ReactiveSwift中做类似的事吗?)
这是一个如何使用flatten(_:)和执行此操作的示例reduce(_:, _:).
let firstProducer = SignalProducer<Int, NoError>(value: 0)
let secondProducer = SignalProducer<Int, NoError>(value: 1)
let thirdProducer = SignalProducer<Int, NoError>(value: 2)
SignalProducer<SignalProducer<Int, NoError>, NoError>(values: [firstProducer, secondProducer, thirdProducer])
.flatten(.merge)
.reduce([]) { $0 + [$1] }
.startWithValues { print($0) } //prints "[0, 1, 2]"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
745 次 |
| 最近记录: |