Saltar al contenido principal
Version: Próxima (sin publicar)

useAsync

Gestiona el ciclo de vida completo de una función asíncrona — idle, pending, fulfilled y rejected — con cancelación automática y ejecución opcional al montar.

Firma

function useAsync<F extends (...args: any[]) => Promise<any>>(
fn: F,
options?: UseAsyncOptions<Awaited<ReturnType<F>>>
): UseAsyncReturn<F>

Opciones

PropiedadTipoPor defectoDescripción
immediatebooleanfalseEjecuta fn automáticamente al montar
onSuccess(data: T) => voidSe llama cuando la promesa se resuelve
onError(error: unknown) => voidSe llama cuando la promesa es rechazada

Valor de retorno

PropiedadTipoDescripción
status"idle" | "pending" | "fulfilled" | "rejected"Estado actual del ciclo de vida
dataT | undefinedValor resuelto, o undefined
errorunknown | undefinedRazón del rechazo, o undefined
loadingbooleantrue mientras status === "pending"
trigger(...args) => Promise<void>Dispara manualmente la función asíncrona
reset() => voidVuelve el estado a idle

Comportamientos clave

  • Se pasa un AbortSignal como último argumento a fn. Úsalo con fetch para cancelación automática.
  • Re-disparar mientras hay una request en vuelo cancela la anterior automáticamente.
  • El controlador de abort se limpia al desmontar el componente.

Ejemplo interactivo

Loading playground...