Definiert in: async-queuer.ts:271
Eine flexible asynchrone Warteschlange zur Verarbeitung von Aufgaben mit konfigurierbarer Nebenläufigkeit, Priorität und Ablaufzeit.
Merkmale
Aufgaben werden bis zur konfigurierten Nebenläufigkeitsgrenze gleichzeitig verarbeitet. Wenn eine Aufgabe abgeschlossen ist, wird die nächste ausstehende Aufgabe verarbeitet, wenn die Nebenläufigkeitsgrenze dies zulässt.
Fehlerbehandlung
Zustandsverwaltung
Beispielanwendung
const asyncQueuer = new AsyncQueuer<string>(async (item) => {
// process item
return item.toUpperCase();
}, {
concurrency: 2,
onSuccess: (result) => {
console.log(result);
}
});
asyncQueuer.addItem('hello');
asyncQueuer.start();
const asyncQueuer = new AsyncQueuer<string>(async (item) => {
// process item
return item.toUpperCase();
}, {
concurrency: 2,
onSuccess: (result) => {
console.log(result);
}
});
asyncQueuer.addItem('hello');
asyncQueuer.start();
• TValue
new AsyncQueuer<TValue>(fn, initialOptions): AsyncQueuer<TValue>
new AsyncQueuer<TValue>(fn, initialOptions): AsyncQueuer<TValue>
Definiert in: async-queuer.ts:279
(item) => Promise<any>
AsyncQueuerOptions<TValue> = {}
AsyncQueuer<TValue>
fn: (item) => Promise<any>;
fn: (item) => Promise<any>;
Definiert in: async-queuer.ts:280
TValue
Promise<any>
key: string;
key: string;
Definiert in: async-queuer.ts:275
options: AsyncQueuerOptions<TValue>;
options: AsyncQueuerOptions<TValue>;
Definiert in: async-queuer.ts:276
readonly store: Store<Readonly<AsyncQueuerState<TValue>>>;
readonly store: Store<Readonly<AsyncQueuerState<TValue>>>;
Definiert in: async-queuer.ts:272
addItem(
item,
position,
runOnItemsChange): boolean
addItem(
item,
position,
runOnItemsChange): boolean
Definiert in: async-queuer.ts:421
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.
TValue
QueuePosition = ...
boolean = true
boolean
queuer.addItem({ value: 'task', priority: 10 });
queuer.addItem('task2', 'front');
queuer.addItem({ value: 'task', priority: 10 });
queuer.addItem('task2', 'front');
clear(): void
clear(): void
Definiert in: async-queuer.ts:734
Entfernt alle ausstehenden Elemente aus der Warteschlange. Beeinflusst keine aktiven Aufgaben.
void
execute(position?): Promise<any>
execute(position?): Promise<any>
Definiert in: async-queuer.ts:556
Entfernt und gibt das nächste Element aus der Warteschlange zurück und führt die Aufgabenfunktion damit aus.
Promise<any>
queuer.execute();
// LIFO
queuer.execute('back');
queuer.execute();
// LIFO
queuer.execute('back');
flush(numberOfItems, position?): Promise<void>
flush(numberOfItems, position?): Promise<void>
Definiert in: async-queuer.ts:591
Verarbeitet eine angegebene Anzahl von Elementen, die sofort ohne Wartezeit ausgeführt werden sollen. Wenn keine numberOfItems angegeben ist, werden alle Elemente verarbeitet.
number = ...
Promise<void>
flushAsBatch(batchFunction): Promise<void>
flushAsBatch(batchFunction): Promise<void>
Definiert in: async-queuer.ts:605
Verarbeitet alle Elemente in der Warteschlange als Stapel unter Verwendung der bereitgestellten Funktion als Argument. Die Warteschlange wird nach der Verarbeitung geleert.
(items) => Promise<any>
Promise<void>
getNextItem(position): undefined | TValue
getNextItem(position): undefined | TValue
Definiert in: async-queuer.ts:504
Entfernt und gibt das nächste Element aus der Warteschlange zurück, ohne die Aufgabenfunktion auszuführen. Verwenden Sie dies für die manuelle Warteschlangenverwaltung. Normalerweise verwenden Sie execute(), um Elemente zu verarbeiten.
QueuePosition = ...
undefined | TValue
// FIFO
queuer.getNextItem();
// LIFO
queuer.getNextItem('back');
// FIFO
queuer.getNextItem();
// LIFO
queuer.getNextItem('back');
peekActiveItems(): TValue[]
peekActiveItems(): TValue[]
Definiert in: async-queuer.ts:697
Gibt die aktuell verarbeiteten Elemente (aktive Aufgaben) zurück.
TValue[]
peekAllItems(): TValue[]
peekAllItems(): TValue[]
Definiert in: async-queuer.ts:690
Gibt eine Kopie aller Elemente in der Warteschlange zurück, einschließlich aktiver und ausstehender Elemente.
TValue[]
peekNextItem(position): undefined | TValue
peekNextItem(position): undefined | TValue
Definiert in: async-queuer.ts:680
Gibt das nächste Element in der Warteschlange zurück, ohne es zu entfernen.
QueuePosition = 'front'
undefined | TValue
queuer.peekNextItem(); // front
queuer.peekNextItem('back'); // back
queuer.peekNextItem(); // front
queuer.peekNextItem('back'); // back
peekPendingItems(): TValue[]
peekPendingItems(): TValue[]
Definiert in: async-queuer.ts:704
Gibt die auf die Verarbeitung wartenden Elemente (ausstehende Aufgaben) zurück.
TValue[]
reset(): void
reset(): void
Definiert in: async-queuer.ts:742
Setzt den Status des Queuers auf seine Standardwerte zurück
void
setOptions(newOptions): void
setOptions(newOptions): void
Definiert in: async-queuer.ts:318
Aktualisiert die Queuer-Optionen. Neue Optionen werden mit den bestehenden Optionen zusammengeführt.
Partial<AsyncQueuerOptions<TValue>>
void
start(): void
start(): void
Definiert in: async-queuer.ts:711
Startet die Verarbeitung von Elementen in der Warteschlange. Wenn bereits ausgeführt, tut dies nichts.
void
stop(): void
stop(): void
Definiert in: async-queuer.ts:721
Stoppt die Verarbeitung von Elementen in der Warteschlange. Leert die Warteschlange nicht.
void
Ihre wöchentliche Dosis JavaScript-Nachrichten. Jeden Montag kostenlos an über 100.000 Entwickler geliefert.