Я провоцировал события цепочек Rx, и у меня проблемы с получением того, что я хочу работать.
Я в основном запрашиваю разрешение пользователя, запрашивая местоположение пользователя, если он был предоставлен, а затем запрашивает данные из API. Ниже приведен код из ViewModel
и я хочу, чтобы мой View
(технически Fragment
) прослушивался. Моя проблема с приведенным ниже кодом заключается в том, что (очевидно), моя первая планшет не вызывается, поскольку никакое начальное событие не вызывает мой Subject
. Я пробовал несколько вариантов этого кода, но не могу найти правильный синтаксис для того, чего я пытаюсь достичь.
Любая помощь будет принята с благодарностью.
var dataSubject = PublishSubject.create<Array<Data>>() fun getData() : Observable<Array<Data>> { dataSubject .flatMap { permissions.request(Manifest.permission.ACCESS_COARSE_LOCATION) } .flatMap { granted: Boolean -> if (granted) { locationProvider.lastKnownLocation } else { throw Error() } } .flatMap { location: Location -> dataRepository.getData(location.latitude, location.longitude) } return dataSubject }