Swift 合并:如何将 `AnyPublisher<[Foo], *>` 转换为 `AnyPublisher<Foo, *>`?

Swift Combine: How can I convert `AnyPublisher<[Foo], *>` to `AnyPublisher<Foo, *>`?

如何将数组某个元素的发布者转换为所述元素的发布者(但有更多事件)?

例如我怎样才能转换

AnyPublisher<[Int], Never>AnyPublisher<Int, Never>?

我想也许 RxSwift 提供的 from operator 与我想做的很相似。

我想我想要 Combine 的倒数 collect?

您可能想要做的是在 Foo 数组的发布者上使用 FlatMap,使用将 Foo 数组转换为 [=14= 的函数] 的 Foo(这是 from 出现的地方)。

.flatMap { [=10=].publisher }

代码如下:

func example(publisher: AnyPublisher<[Foo], Never>) -> AnyPublisher<Foo, Never> {
    return publisher
        .map { [=10=].publisher }
        .switchToLatest()
        .eraseToAnyPublisher()
}