Articles of rx java2

kotlin получает подписчика для наблюдения наблюдаемого с помощью RxJava2

Android Studio 3.0 Beta2 Я создал 2 метода один, который создает наблюдаемый, а другой, который создает подписчика. Тем не менее, у меня возникает проблема, чтобы заставить подписчика подписаться на наблюдаемый. В Java это сработает, и я пытаюсь заставить его работать в Котлине. В моем методе onCreate (..) я пытаюсь установить это. Это правильный способ сделать […]

Получить N последних объектов, испускаемых наблюдаемыми в RxJava2

У меня есть Observables, который испускает некоторые числа, и я просто хочу взять последние N элементов. У меня есть следующий код (я использую RxKotlin, который является просто оболочкой на RxJava): val list = listOf(1,2,3,4,5,6,7,8,9,10) Observable.fromIterable(list) .buffer(3, 1) .lastOrError() .subscribe{value -> println(value)} К сожалению, результат [10] , когда я посмотрел, что возвращает оператор буфера, я увидел […]

Rx-Kotlin ждутTerminalEvent, никогда не получающего onComplete

Я пытаюсь лучше понять, как выполнять модульные тесты с Rx-Kotlin, но я не смог успешно установить тему «завершен». В результате я всегда жду тайм-аута в 5 секунд (onComplete должен быть немедленным), а затем сбой на assertComplete. Мое понимание awaitTerminalEvent заключается в том, что он должен блокироваться только до вызова onComplete. Я также заглянул в TestScheduler, […]

Абонент RxJava2 PublishSubject не может получать элементы при вызове из нескольких потоков, используя SingleScheduler

У меня есть следующий модульный тест, в котором я пытаюсь отправить 10 String из разных потоков и проверить, что я получаю эти String из одного потока. Моя проблема в том, что этот тест закрылков. Иногда это удается, но иногда я получаю только 8 или 9 элементов, и после этого тест зависает до тех пор, пока […]

JsonArray в класс данных Kotlin с использованием Retrofit (ожидается BEGIN_OBJECT, но BEGIN_ARRAY)

Я использую Retrofit2 fun create(): MyApiService { return Retrofit.Builder() .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .addConverterFactory(GsonConverterFactory.create()) .baseUrl(BASE_URL) .build() .create(MyApiService::class.java) } для неявного преобразования следующего Json [ { "id": 1, "name": "John", }, { "id": 2, "name": "Mary", } ] в класс данных Kotlin object Model { data class Person(val id: Int, val name: String) } Тем не менее, я получаю […]

Android RxJava: объединение двух запросов и выполнение некоторой логики между ними

Привет, я пытаюсь создать цепочку сетевых запросов, используя flatmap, но не совсем понимаю процесс, как это сделать. Цель состоит в том, чтобы сделать это: выполните networkRequest 1, как только я получу результат от networkRequestOne, сделайте немного бит логики по этому результату, а затем выполните следующее networkRequestTwo и вызов onSuccess с возвращенным значением ответа из networkRequestTwo. […]

Тест RxJava2 Flowable Query Room

Я пытался написать модульные тесты для моей базы данных Room, которые я делал в прошлом, когда у меня есть запросы, возвращающие список, и я создаю базу данных, которая позволяет запрашивать основные потоки, но теперь, когда я пытаюсь проверить с помощью Значения RxJava Мне не повезло. Вот мой код DAO: @Dao interface AccountDAO { @Query("SELECT * […]

Метод RXjava2 в fromCallable не получает exceuted

Я новичок в использовании rxjava, и я пытаюсь запустить функцию в фоновом режиме с помощью rxjava2, но метод не называется кодом, который я использую ниже, дайте мне знать, правильно ли он выполняет функцию в фоновом режиме: Observable.fromCallable<OrderItem>(Callable { saveToDb(existingQty, newOty, product_id) }).doOnSubscribe { object : Observable<OrderItem>() { override fun subscribeActual(emitter: Observer<in OrderItem>?) { try { […]

rx-java2 Schedulers.io () steel вызывает метод из mainThread

Я пытаюсь получить данные из базы данных, используя комнату с Rx способом. Вот как я пытаюсь это сделать override fun onStart() { super.onStart() disposable.add(presenter.getAllBooks() .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe({ println(it.size()) })) } это метод getAllBooks() внутри ведущего fun getAllBooks() : Flowable<List<Book>> { val isMainThread = Looper.myLooper() == Looper.getMainLooper() if (!isMainThread) { updateBooks() return db.bookDao().allBooks } return Flowable.empty() […]

Для функции Kotlin, используемой в качестве выражения, существует ли краткий способ работы и возврата значения?

В Котлине окончательный оператор функции можно интерпретировать как возвращаемое значение. Можно ли упростить ситуацию, подобную приведенному ниже примеру, менее подробно? { text: String -> val validated = validateText(text) if (validated) { actOnValidation() } validated } Конкретный случай, когда я хотел бы сделать это, приведен ниже в примере с использованием RxJava – даже если есть лучший […]