Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

401
Vistas
Rx Java 2: ¿Cómo envolver una devolución de llamada?

Tengo este código para envolver una devolución de llamada en Rx Java 1 y compila bien, pero ahora que cambié a RX Java 2 no compila... ¿cuál es el equivalente en Rx Java 2?

 return Observable.fromEmitter(new Action1<AsyncEmitter<Integer>>() { @Override public void call(AsyncEmitter<Integer> emitter) { transObs.setTransferListener(new TransferListener() { @Override public void onStateChanged(int id, TransferState state) { if (state == TransferState.COMPLETED) emitter.onCompleted(); } @Override public void onProgressChanged(int id, long bytesCurrent, long bytesTotal) { } @Override public void onError(int id, Exception ex) { emitter.onError(ex); } }); emitter.setCancellation(new AsyncEmitter.Cancellable() { @Override public void cancel() throws Exception { transObs.cleanTransferListener(); } }); } }, AsyncEmitter.BackpressureMode.BUFFER);

ACTUALIZAR:

Se me ocurrió esto, pero ¿tienes que lidiar con la contrapresión ya que es una llamada oncreate?

 return Observable.create(new ObservableOnSubscribe<List<DigitsUser>>() { @Override public void subscribe(final ObservableEmitter<List<DigitsUser>> emitter) throws Exception { mDigitFriends.findFriends((gotEm, users) -> { emitter.onNext(users); }); emitter.setCancellable(() -> { emitter.onNext(null); }); } });
about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Si le preocupa la contrapresión, debe usar la clase Flowable. Aquí hay una cita de RxJava2 Wiki :

Prácticamente, el fromEmitter 1.x (anteriormente fromAsync) ha sido renombrado a Flowable.create.

Aquí está su ejemplo usando la clase Flowable:

 return Flowable.create(new FlowableEmitter<List<DigitsUser>>() { @Override public void subscribe(final FlowableEmitter<List<DigitsUser>> emitter) throws Exception { mDigitFriends.findFriends((gotEm, users) -> { emitter.onNext(users); }); emitter.setCancellable(() -> { emitter.onNext(null); }); } }, BackpressureStrategy.BUFFER);
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda