reactive-programming - rxswift - reactivecocoa swift
Diferencia entre catch: y subscribeError: (1)
En ReactiveCocoa , ¿cuál es la diferencia entre el subscribeError: method vs. catch: :? ¿Por qué querrías devolver una señal en catch: :?
-subscribeError: realidad se suscribe: este es el final de la línea. Mientras que -catch: simplemente transforma una señal en una nueva señal (y en realidad no se suscribe). Piense en la señal como un programa. Cuando -subscribeError: le está diciendo a la computadora "Quiero ejecutar este programa, pero solo quiero saber de usted si se produce un error". Cuando usted -catch: , dice: "Tengo este programa que puede generar un error y quiero crear uno nuevo basado en el antiguo que maneja ese error de manera diferente".
La razón por la que tiene que devolver una señal en -catch: es que no es simplemente para silenciar errores: en realidad es para responder a errores. Una vez que se ha producido un error en la señal original, ya no existe: si desea que la señal resultante continúe después de una falla, debe -catch: una nueva señal en -catch:
Ejemplos de lo que podrías hacer en -catch: ::
- Devuelve
[RACSignal empty]si quieres fallar en silencio y no lanzar un error. - Devuelva
[RACSignal error:err]si desea volver a emitir el error después de hacer algo, o tal vez quiera transformar el error. - Devuelva alguna otra señal a la que desee suscribirse en caso de que la primera cometa un error.