Мне очень трудно пытаться создать расширение, которое преобразует отдельный массив в 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>
, ошибка исчезла бы, но я не пытался достичь результата.