【发布时间】:2020-12-21 09:38:45
【问题描述】:
我正在寻找一种方法,可以让您对先前的输出做出反应以创建新的流。
它类似于scan,但不是返回一个输出,而是返回另一个发布者来发布下一个结果。
这是类似于扫描示例的内容:
func next(x: Int) -> AnyPublisher<Int?, Never> {
return Future { x < 5 ? $0(.success(x + 1)) : $0(.success(nil)) }
}
next(0)
.fold { x != nil ? next(x) : nil }
.collect()
// Yields [1, 2, 3, 4]
更真实的东西:
paginated(0)
.fold(limit: 100) { $0.index < $0.total ? paginated($0.index + 1) : nil }
.collect()
// Yields all pages as an array
【问题讨论】:
标签: swift functional-programming reactive combine