gpt4 book ai didi

ios - 用于将 Single<[Element]> 转换为 Observable 的 rxSwift 扩展

转载 作者:行者123 更新时间:2023-11-28 11:41:14 24 4
gpt4 key购买 nike

我真的很难尝试创建一个将单个数组转换为 Observable 的扩展。所以例如我有一个 Single<[Address]>我想将其转换为 Observable<Address> .

每次我想这样做的时候我必须写的代码是

mySingleVariable.asObservable().flatMap({ addresses in Observable.from(addresses) })

这个操作很常见,代码也比较冗长。我尝试创建一个扩展如下所示

extension PrimitiveSequence where Trait == SingleTrait {
func flatObservable<R: Collection>() -> Observable<R.Element> {
return asObservable().flatMap({ element in Observable.from(element) })
}
}

不幸的是,上面的代码不起作用。我得到的错误是“函数签名中未使用通用参数‘R’”。这是因为该函数返回 Observable<R.Element> .如果要返回 Observable<R> ,错误会消失,但这不是我想要达到的结果。

最佳答案

试试这个:

extension PrimitiveSequence where Trait == SingleTrait, Element: Sequence {

func flatObservable<R>() -> Observable<R> where R == Element.Element {
return asObservable().flatMap { Observable.from($0) }
}
}

关于ios - 用于将 Single<[Element]> 转换为 Observable<Element> 的 rxSwift 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53620508/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com