Function: Resource()

function Resource<Ctx, T>(source: ResourceSourceFn<Ctx, T>): (target: undefined, context: ClassFieldDecoratorContext<Ctx, IResource<T>>) => void;

Defined in: src/reactivity/decorators/resource.ts:54

Decorador

Type Parameters

Type Parameter
Ctx extends object
T

Parameters

Parameter Type Description
source ResourceSourceFn<Ctx, T> Función que recibe un AbortSignal y retorna una Promise con los datos

Returns

(target: undefined, context: ClassFieldDecoratorContext<Ctx, IResource<T>>): void;

Parameters

Parameter Type
target undefined
context ClassFieldDecoratorContext<Ctx, IResource<T>>

Returns

void

Resource

para crear propiedades reactivas que cargan datos asíncronos.

La función source recibe un AbortSignal como primer parámetro que debe pasarse a cualquier operación asíncrona que soporte cancelación. Esto permite que el framework cancele automáticamente operaciones obsoletas cuando las dependencias del resource cambian.

Examples

// Resource con fetch cancelable
@Resource((signal) =>
  fetch('/api/user', { signal }).then(r => r.json())
)
userResource!: IResource<User>;
// Resource que usa el signal en operaciones personalizadas
@Resource((signal) => {
  return new Promise((resolve, reject) => {
    signal.addEventListener('abort', () => {
      reject(new Error('Operation cancelled'));
    });

    // Tu lógica asíncrona aquí
    fetchDataSomehow().then(resolve);
  });
})
dataResource!: IResource<Data>;