Framework
Version
Debouncer API Referenz
Throttler API Referenz
Rate Limiter API Referenz
Queue API Referenz
Batcher API Referenz

queue

Funktion: queue()

ts
function queue<TValue>(fn, initialOptions): (item, position, runOnItemsChange) => boolean
function queue<TValue>(fn, initialOptions): (item, position, runOnItemsChange) => boolean

Definiert in: queuer.ts:717

Erstellt eine Warteschlange, die Elemente sofort nach dem Hinzufügen verarbeitet. Elemente werden standardmäßig FIFO-konform sequenziell verarbeitet.

Dies ist ein vereinfachter Wrapper um die Queuer-Klasse, der nur die Methode addItem freigibt. Die Warteschlange ist immer isRunning und verarbeitet Elemente, sobald sie hinzugefügt werden. Für mehr Kontrolle über die Warteschlangenverarbeitung verwenden Sie die Queuer-Klasse direkt.

Zustandsverwaltung

  • Verwendet TanStack Store für reaktives Zustandsmanagement
  • Verwenden Sie initialState, um anfängliche Zustands-Werte beim Erstellen des Queuers bereitzustellen.
  • Verwenden Sie den Rückruf onExecute, um auf die Ausführung eines Elements zu reagieren und benutzerdefinierte Logik zu implementieren.
  • Verwenden Sie den onItemsChange Callback, um auf das Hinzufügen oder Entfernen von Elementen aus der Warteschlange zu reagieren
  • Verwenden Sie den onExpire Callback, um auf abgelaufene Elemente zu reagieren und benutzerdefinierte Logik zu implementieren
  • Verwenden Sie den onReject Callback, um auf abgelehnte Elemente zu reagieren, wenn die Warteschlange voll ist
  • Der Zustand umfasst die Anzahl der Ausführungen, die Anzahl der abgelaufenen Elemente, die Anzahl der abgelehnten Elemente und den isRunning-Status.
  • Der Zustand kann über die Eigenschaft store.state der zugrunde liegenden Queuer-Instanz abgerufen werden.
  • Bei Verwendung von Framework-Adaptern (React/Solid) wird der Zustand aus der `state`-Eigenschaft des Hooks abgerufen

Beispielanwendung

ts
// Basic sequential processing
const processItems = queue<number>((n) => console.log(n), {
  wait: 1000,
  onItemsChange: (queuer) => console.log(queuer.peekAllItems())
});
processItems(1); // Logs: 1
processItems(2); // Logs: 2 after 1 completes

// Priority queue
const processPriority = queue<number>((n) => console.log(n), {
  getPriority: n => n // Higher numbers processed first
});
processPriority(1);
processPriority(3); // Processed before 1
// Basic sequential processing
const processItems = queue<number>((n) => console.log(n), {
  wait: 1000,
  onItemsChange: (queuer) => console.log(queuer.peekAllItems())
});
processItems(1); // Logs: 1
processItems(2); // Logs: 2 after 1 completes

// Priority queue
const processPriority = queue<number>((n) => console.log(n), {
  getPriority: n => n // Higher numbers processed first
});
processPriority(1);
processPriority(3); // Processed before 1

Typparameter

TValue

Parameter

fn

(item) => void

initialOptions

QueuerOptions<TValue>

Gibt zurück

Funktion

Fügt ein Element zur Warteschlange hinzu. Wenn die Warteschlange voll ist, wird das Element abgelehnt und onReject aufgerufen. Elemente können basierend auf der Priorität oder am Anfang/Ende basierend auf der Konfiguration eingefügt werden.

Gibt true zurück, wenn das Element hinzugefügt wurde, false, wenn die Warteschlange voll ist.

Beispielanwendung

ts
queuer.addItem('task');
queuer.addItem('task2', 'front');
queuer.addItem('task');
queuer.addItem('task2', 'front');

Parameter

item

TValue

position

QueuePosition = ...

runOnItemsChange

boolean = true

Gibt zurück

boolean

Unsere Partner
Code Rabbit
Unkey
Bytes abonnieren

Ihre wöchentliche Dosis JavaScript-Nachrichten. Jeden Montag kostenlos an über 100.000 Entwickler geliefert.

Bytes

Kein Spam. Jederzeit kündbar.

Bytes abonnieren

Ihre wöchentliche Dosis JavaScript-Nachrichten. Jeden Montag kostenlos an über 100.000 Entwickler geliefert.

Bytes

Kein Spam. Jederzeit kündbar.