Task
An async operation an app starts on demand, whose progress, result and error components read as signals.
Verwendung
Save without submitting twice
Dieser Typ wird verwendet von task
import { Button, Text, VStack, task } from 'kuito';
export function SaveButton(props: { save: () => Promise<void> }) {
const save = task(() => props.save(), { policy: 'drop' });
return (
<VStack gap={8}>
<Button disabled={save.running.value} onPress={() => void save.run().catch(() => {})}>
{save.running.value ? 'Saving…' : 'Save changes'}
</Button>
<Text>{save.error.value ? 'Save failed. Try again.' : ''}</Text>
</VStack>
);
}Typdeklaration
export interface Task<A extends unknown[], T> {
readonly running: ReadonlySignal<boolean>;
readonly data: ReadonlySignal<T | undefined>;
readonly error: ReadonlySignal<unknown>;
run(...args: A): Promise<T>;
cancel(reason?: unknown): void;
}Mitglieder 5
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
runningschreibgeschützt | ReadonlySignal<boolean> | Ja | — |
dataschreibgeschützt | ReadonlySignal<T> | Ja | — |
errorschreibgeschützt | ReadonlySignal<unknown> | Ja | — |
run | (...args: A) => Promise<T> | Ja | — |
cancel | (reason?: unknown) => void | Ja | — |
run — Methodensignaturen
Signaturen
(...args: A): Promise<T>Parameter
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
...args | A | Ja | — |
Rückgabe
Promise<T>
cancel — Methodensignaturen
Signaturen
(reason?: unknown): voidParameter
| Name | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
reason | unknown | Nein | — |
Rückgabe
void
Generiert aus den öffentlichen TypeScript-Deklarationen: Signaturen, Props und Standardwerte stammen aus der geprüften Quelle, Beschreibungen aus deren JSDoc. Kein Standardwert ist erfunden.