Articles of reactivo progtwigción

RxJava2 switchIfEmpty y verificando una ejecución

así que imagina que tengo un método de build así: LocalDatabase: public Observable<PoiObject> getPoiObject() { return Observable.defer { PoiObject object = poiDao.getPoiObject(); if(object == null) { return Observable.empty(); } else { return Observable.just(object); } } } ahora, tengo otro método en otro lugar que dice así: Servicio: public Observable<PoiObject> getPoiObject() { return localDatabase.getPoiObject() } public […]

Kotlin generics issue

El error ocurre al pasar this a onResume . De alguna manera, no reconoce que this implementa ActivityLifecycleType . ¿Me falta algo? open class BaseActivity<ViewModelType: ActivityViewModel<*>>: RxAppCompatActivity(), ActivityLifecycleType { protected var viewModel: ViewModelType? = null @CallSuper override fun onResume() { super.onResume() viewModel?.onResume(this) ==> Error Requinetworking Nothing, Find BaseActivity<ViewModelType> } } open class ActivityViewModel<in ViewType: ActivityLifecycleType> […]

Cómo combinar el flatmap y el anterior Single

Hay un código de trabajo siguiente, que combina los resultados de .connect() y .auth() . auth() depende del resultado de connect() . En total, es necesario combinar los resultados api y auth en el object Connection . fun getConnection(token: String): Single<Connection> { return connect() .map { Api(it) } .flatMap { api -> api.auth(token) .map { […]

Utilizando el valor inicial de observable en suscripción junto con el mapeado

Eche un vistazo al siguiente fragment de código: vertx.eventBus().consumer<JsonObject>(CREATEMEETING_SERVICE_ID).toObservable() .map { objectMapper.readValue(it.body().getJsonObject("body").encode(), Meeting::class.java) } .flatMap (meetingService::createMeeting) .subscribe( { Json.encodePrettily(it) }, { throw it } ) Necesito llamar al método message.reply del observable inicial en el método NextNext de suscripción. Una forma de hacerlo es usar Pares de en lugar de conocer solo lo que lo […]

Crear un observable común que evite múltiples llamadas

Tengo un método que lee / escribe un post. fun sendMessage(message: String): Observable<MESSAGE> { return readMessage().doOnSubscribe { socket.write(message) } } readMessage() devuelve un tema de publicación que emite un valor de un elemento observable en caliente de una secuencia ( socket.read() ). protected fun readMessage(): Observable<MESSAGE> { if (messageSubject == null) { messageSubject = PublishSubject.create() […]

Observables opcionales en combinar

Como definido, combine_test en rx solo emite si todos los valores han cambiado al less una vez. (siempre y cuando cada fuente de los Observables haya emitido al less un elemento) Lo uso para manipular vistas en mis vistas de Android. Por ejemplo, habilito un button de llamada a la acción tan pronto como todos […]

¿Cómo puedo get valor de observable

Tengo esta function en mi proyecto de Kotlin. Estoy usando ReactiveNetwork : estado de connection a la networking de escucha de la biblioteca Android y conectividad a Internet con RxJava Observables. Soy nuevo en la progtwigción reactiva y ahora necesito refactorizar este método para usarlo en muchos lugares. ¿Cómo puedo refactorizar este método para simplemente […]

Combina Rx Singles en Observables recursivamente

Digamos que tengo un Single llamado s_0 que puede emitir un elemento t_0 del tipo T o fail (que sería un Single<T> en algunos idiomas). Es decir: s_0: — t_0 // Success OR s_0: — X // Failure Las instancias de tipo T tienen un método next() que también devuelve un Single opcional del tipo […]

JavaRX: cómo devolver el valor en caching inmediatamente y en paralelo hacer una request de networking

¿Cómo obtengo un valor almacenado previamente en caching inmediatamente mientras espero recibir una request de networking? val suggestionsCache = mutableMapOf<String, List<Suggestion>>() override fun requestSuggestions(queryString: String, queryLocation: Location): Observable<List<Suggestion>> { return Observable.merge( getCached(queryString), placesService .requestSuggestions(queryString, queryLocation) .doOnNext { cache(it, queryString) }) } private fun getCached(queryString: String): Observable<List<Suggestion>?>? { return if (suggestionsCache.containsKey(queryString)) Observable.just(suggestionsCache[queryString]) else Observable.never<List<Suggestion>>() } private […]

Pausa / Reanudar un timer / retraso en RX

Estoy intentando pausar / reanudar una operación retrasada usando rx-Java , y sorprendentemente no puedo encontrar ningún detalle sobre cómo hacerlo. Obviamente, sé cómo hacerlo creando un hilo de Timer específico y haciendo un seguimiento de la hora, pero estoy buscando una forma más elegante y más reactiva. Tengo tres observables diferentes, playDetected , uno […]