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()
}
如何将数组某个元素的发布者转换为所述元素的发布者(但有更多事件)?
例如我怎样才能转换
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()
}