Hi there! Are you looking for the official Deno documentation? Try docs.deno.com for all your Deno learning needs.

navigatorLock

Implements a global exclusive lock using the Navigator LockManager API. It is available on all browsers released after 2022-03-15 with Safari being the last one to release support. If the API is not available, this function will throw. Make sure you check availablility before configuring GoTrueClient.

You can turn on debugging by setting the supabase.gotrue-js.locks.debug local storage item to true.

Internals:

Since the LockManager API does not preserve stack traces for the async function passed in the request method, a trick is used where acquiring the lock releases a previously started promise to run the operation in the fn function. The lock waits for that promise to finish (with or without error), while the function will finally wait for the result anyway.

function navigatorLock<R>(
name: string,
acquireTimeout: number,
fn: () => Promise<R>,
): Promise<R>;
§
navigatorLock<R>(name: string, acquireTimeout: number, fn: () => Promise<R>): Promise<R>
[src]

§Type Parameters

§Parameters

§
name: string
[src]

Name of the lock to be acquired.

§
acquireTimeout: number
[src]

If negative, no timeout. If 0 an error is thrown if the lock can't be acquired without waiting. If positive, the lock acquire will time out after so many milliseconds. An error is a timeout if it has isAcquireTimeout set to true.

§
fn: () => Promise<R>
[src]

The operation to run once the lock is acquired.

§Return Type

§
Promise<R>
[src]