Resource API
Una de las nuevas características de Angular 19 es la introducción de la API Resource para trabajar con peticiones asíncronas (promesas u observables).
- resource → Trabaja con promesas
- rxResource → Trabaja con observables
Dentro de la función resource o rxResource debemos pasarle un objeto con una función loader que hará la carga de datos. Esta función devolverá una promesa u observable con los datos.
Acceder al valor interno
Para acceder al valor una vez está disponible, tenemos la señal interna value.
Estado de carga
Podemos comprobar el estado del recurso con la señal status, o si solo queremos saber si está realizando la petición o ya a terminado, directamente usamos isLoading (boolean).
Gestión de errores
Para comprobar si ha habido un error en la última petición realizada podemos consultarlo con la señal error.
Recarga manual
Se puede forzar al recurso a volver a realizar la petición utilizando el método reload.
Vinculación de parámetros
Por medio de una función request, podemos devolver una serie de valores a los que podremos acceder en la función loader. En la función request, las señales a las que accedamos crean depedencias (como usar computed o linkedSignal) y cada vez que cambia su valor se reevalúa la función y se relanza la petición recargando los datos.
Si necesitamos más de un parámetro, bastaría con devolver un objeto (que se recibiría en la propiedad request del loader).
Cancelando un resource
Cuando cambia el valor de los parámetros vinculados, la petición actual, si estaba en curso, se cancela generando una nueva. Esto con observables (rxResource) se gestiona automáticamente. Sin embargo, al usar promesas (resource), le tenemos que pasar un objeto AbortSignal a la promesa para cancelarla.