结合框架流转换 ['a','b','c'] -> 'a' 然后 'b' 然后 'c'

Combine Framework stream transformation ['a','b','c'] -> 'a' then 'b' then 'c'

简单的问题,但苦苦思索了一段时间。

我有一个网络请求,我在其中获取一个字符串数组:['a','b','c']

可以说我有 CurrentValueSubject['a','b','c']。我想创建一个下游,元素然后一个一个地走,如何实现?

Combine Framework 流转换 ['a','b','c'] -> 'a' 然后 'b' 然后 'c'

您可以使用 flatMap 创建一个发布者,对于上游发布者发布的每个元素,将元素转换为发布者并发布该发布者发布的内容。

假设 cvs 是一个 CurrentValueSubject<[String], Never>,你可以得到一个发布者来发布 cvs 发布的数组的每个字符串,方法是:

cvs.flatMap(\.publisher)

注意这里的\.publisher指的是sequences上的publisher属性,是一个publisher,对每个元素单独发布