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.