Verwendung

Save without submitting twice

Dieser Typ wird verwendet von task

tsx
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

ts
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

NameTypErforderlichBeschreibung
runningschreibgeschütztReadonlySignal<boolean>Ja—
dataschreibgeschütztReadonlySignal<T>Ja—
errorschreibgeschütztReadonlySignal<unknown>Ja—
run(...args: A) => Promise<T>Ja—
cancel(reason?: unknown) => voidJa—
run — Methodensignaturen

Signaturen

ts
(...args: A): Promise<T>

Parameter

NameTypErforderlichBeschreibung
...argsAJa—

Rückgabe

Promise<T>

cancel — Methodensignaturen

Signaturen

ts
(reason?: unknown): void

Parameter

NameTypErforderlichBeschreibung
reasonunknownNein—

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.