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.