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>;