que observables example ejemplo angular rxjs observable angular-observable

observables - ¿Por qué deberíamos usar subscribe() sobre map() en Angular?



observables angular 6 (4)

Necesita subscribe para ejecutar su solicitud asincrónica. Si acaba de establecer el map , no se generarán solicitudes. Puedes comprobar.

Se recomienda utilizar el map para preprocesar sus datos porque muchos suscriptores pueden comparar sus resultados. Por lo tanto, en lugar de agregar preprocesamiento a cada cliente (suscriptor), puede preparar una sola salida con un esquema de datos único para todos.

Estoy tratando de aprovechar los observables en angular2 y me confundí sobre por qué debería usar map () sobre subscribe (). Supongamos que obtengo valores de un webApi, como este

this.http.get(''http://172.17.40.41:8089/api/Master/GetAllCountry'')

Ahora, al utilizar subscribe(success, error, complete) puedo obtener todos los valores en la devolución de llamada exitosa y puedo devolver los valores en la devolución de llamada completa. Si puedo hacer todas estas funcionalidades, ¿cuál es la necesidad de map() ? ¿Le da alguna ventaja?

En resumen, ¿por qué uno debería escribir así ?

this.http.get(''http://172.17.40.41:8089/api/Master/GetAllCountry'') .map(r=>{}) .subscribe(value => { }, error => error, () => { });

cuando simplemente pueden escribir esto sin la función de mapa:

this.http.get(''http://172.17.40.41:8089/api/Master/GetAllCountry'') .subscribe(value => { }, error => error, () => { });


Piense en el mapa como un middleware que transforma la respuesta.

this.http.get(''http://172.17.40.41:8089/api/Master/GetAllCountry'') .map(r=>r.json()) .subscribe(result => { // here result would have json object that was parsed by map handler... },failurCallback,completeCallback)

subscribe se usa para invocar el observable, por favor lea un buen documento sobre cold-vs-hot-observables


Si desea devolver un Observable puede suscribir otro código, pero aún desea manipular los eventos de datos en el método actual, use el map .

El usuario real de lo observable necesita subscribe() , porque sin subscribe() el observable no se ejecutará en absoluto. ( forEach() o toArray() y probablemente otros también funcionen para ejecutar el observable en lugar de subscribe() )

subscribe() devuelve una Subscription que no se puede suscribir, pero se puede utilizar para cancelar la suscripción.

map() devuelve un Observable que se puede suscribir.