RxJava2 - событие не получено с помощью .blockingFirst () - PullRequest
1 голос
/ 01 октября 2019

Я пытаюсь получить значение из моего Observable (BehaviorSubject.create ())

Когда я запускаю locationObservable.subscribe {}, я получаю результаты в течение нескольких секунд. Однако с

        try {
            it.locationObservable
                    .timeout(10, TimeUnit.SECONDS)
                    .blockingFirst()
        } catch (e: Exception) {
        }

ничего не происходит с таймаутом или без него. Я просто получаю «java.util.concurrent.TimeoutException: источник не сигнализировал о событии в течение 10 секунд и был прерван». Я попытался blockingFirst (), blockingLast () и blockingForEach (). Я как-то блокирую поток, который предоставил бы мне значение?

РЕДАКТИРОВАТЬ: После перемещения из основного потока он начал работать. Спасибо всем за ваш вклад.

1 Ответ

0 голосов
/ 01 октября 2019

Оператор .observeOn(Schedulers.io()) поставит в очередь все отправленные элементы, которые будут отправлены в поток ввода-вывода приложения Android.

...