Bagikan melalui


CancellableAsyncLock interface

CancellableAsyncLock menyediakan mekanisme untuk memaksa tugas menggunakan 'kunci' yang sama untuk dijalankan secara serial.

Tugas yang tertunda dapat dibatalkan secara manual melalui abortSignal atau dibatalkan secara otomatis dengan mencapai nilai batas waktu yang disediakan.

Metode

acquire<T>(string, (args: any[]) => Promise<T>, AcquireLockProperties)

Mengembalikan janji yang diselesaikan ke nilai yang dikembalikan oleh fungsi tugas yang disediakan. Hanya 1 tugas yang dapat dipanggil pada satu waktu untuk nilai key tertentu.

Panggilan akuisisi dapat dibatalkan melalui abortSignal. Jika dibatalkan, janji akan ditolak dengan AbortError.

acquireTimeoutInMs juga dapat disediakan untuk properti. Jika batas waktu tercapai sebelum task yang disediakan dipanggil, maka janji akan ditolak dengan Kesalahan yang menyatakan waktu tugas habis menunggu untuk memperoleh kunci.

Detail Metode

acquire<T>(string, (args: any[]) => Promise<T>, AcquireLockProperties)

Mengembalikan janji yang diselesaikan ke nilai yang dikembalikan oleh fungsi tugas yang disediakan. Hanya 1 tugas yang dapat dipanggil pada satu waktu untuk nilai key tertentu.

Panggilan akuisisi dapat dibatalkan melalui abortSignal. Jika dibatalkan, janji akan ditolak dengan AbortError.

acquireTimeoutInMs juga dapat disediakan untuk properti. Jika batas waktu tercapai sebelum task yang disediakan dipanggil, maka janji akan ditolak dengan Kesalahan yang menyatakan waktu tugas habis menunggu untuk memperoleh kunci.

function acquire<T>(key: string, task: (args: any[]) => Promise<T>, properties: AcquireLockProperties): Promise<T>

Parameter

key

string

Semua panggilan acquire dikelompokkan menurut keyyang disediakan.

task

(args: any[]) => Promise<T>

Fungsi yang akan dipanggil setelah kunci diperoleh.

properties
AcquireLockProperties

Properti tambahan untuk mengontrol perilaku acquire.

Mengembalikan

Promise<T>