finalize

Retorna un Observable que refleja el Observable fuente, pero que llamará a una función determinada tras la terminación de la fuente, en complete o en error

Signatura

Firma

finalize<T>(callback: () => void): MonoTypeOperatorFunction<T>

Parameters

Retorna

MonoTypeOperatorFunction<T>: Un Observable que refleja la fuente, pero que hará una llamada a la función proporcionada tras la terminación de la fuente.

Ejemplos

Ejecutar la función callback tras la compleción del Observable

StackBlitz

import { of } from "rxjs";
import { finalize } from "rxjs/operators";

const fruit$ = of("Cereza", "Fresa", "Arándano");

fruit$
  .pipe(finalize(() => console.log("Ejecutando finalize")))
  .subscribe(console.log, console.error, () => console.log("Flujo completado"));
// Salida: Cereza, Fresa, Arándano, Flujo completado, Ejecutando finalize

finalize

La función callback se ejecuta aunque ocurra un error

StackBlitz

import { throwError } from "rxjs";
import { finalize } from "rxjs/operators";

const error$ = throwError("¡Oh no!");

error$
  .pipe(finalize(() => console.log("Ejecutando a pesar del error!")))
  .subscribe(console.log, console.error);
// Output: (error) '¡Oh no!', 'Ejecutando a pesar del error!'

Ejecutar la función callback tras realizar todas las peticiones AJAX

StackBlitz

import { finalize, take, map, mergeAll } from "rxjs/operators";
import { ajax } from "rxjs/ajax";

const ghibliFilm$ = ajax.getJSON(`https://ghibliapi.herokuapp.com/films/`);

ghibliFilm$
  .pipe(
    mergeAll(),
    map(({ title }) => title),
    take(3),
    finalize(() => console.log("Peticiones Realizadas"))
  )
  .subscribe(console.log, console.error, () => console.log("Flujo Completado"));
// Salida: Castle in the Sky, Grave of the Fireflies, My Neighbor Totoro, Flujo Completado, Peticiones Realizadas

Recursos adicionales

Documentación oficial en inglés

Last updated