Объедините flatMap / Scan для получения промежуточного результата - PullRequest
0 голосов
/ 02 мая 2018

Я часто нахожу себя в цепочке нескольких запросов HTTP с flatmap, но иногда мне нужно нести результат дальше, чем следующая наблюдаемая. Как бы я поступил так?

Fx:

getAPIKey().flatMap( {key in 
    return getData1(key)
})
.flatMap({ (key, data) in 
   return getData2(key, data)
})
.map({ data in
   data.transform()
})
.subscribe(onNext: { transformed in
//Do something with data
})

Это не настоящий пример, так что не стоит увлекаться семантикой.

1 Ответ

0 голосов
/ 02 мая 2018

Так что я также разместил этот вопрос на Slack для RxSwift.

Это ответ, который я получил от Жолта Варади (vzsg)

getFoo().flatMap { foo in
    getBars(ofFoo: foo.id).map { bars in (foo, bars) }
}

Надеюсь, что это может помочь кому-то еще

...