From 6b96263c92b469ca001ab34fa71c976356162b29 Mon Sep 17 00:00:00 2001 From: aung Date: Wed, 9 Jun 2021 18:14:08 +0630 Subject: [PATCH 01/15] added a new file for asyncStoragePersistor --- .../index.js | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/createAsyncStoragePersisor-experimental/index.js diff --git a/src/createAsyncStoragePersisor-experimental/index.js b/src/createAsyncStoragePersisor-experimental/index.js new file mode 100644 index 0000000000..84097e937d --- /dev/null +++ b/src/createAsyncStoragePersisor-experimental/index.js @@ -0,0 +1,45 @@ +import AsyncStorage from '@react-native-community/async-storage'; + +function throttle(func, wait) { + if (wait === 0) { + wait = 100; + } + + var timer = null; + return function () { + for ( + var _len = arguments.length, args = new Array(_len), _key = 0; + _key < _len; + _key++ + ) { + args[_key] = arguments[_key]; + } + + if (timer === null) { + timer = setTimeout(function () { + func.apply(0, args); + timer = null; + }, wait); + } + }; +} + +export const asyncStoragePersistor = ({asyncStorageKey, throttleTime}) => { + return { + persistClient: throttle(function (persistedClient) { + AsyncStorage.setItem(asyncStorageKey, JSON.stringify(persistedClient)); + }, throttleTime), + restoreClient: async function restoreClient() { + const cacheString = await AsyncStorage.getItem(asyncStorageKey); + + if (!cacheString) { + return; + } + + return JSON.parse(cacheString); + }, + removeClient: function removeClient() { + AsyncStorage.removeItem(asyncStorageKey); + }, + }; +}; From 490c23677cfe7595843e7c8e7d98b0ceb3393093 Mon Sep 17 00:00:00 2001 From: aung Date: Wed, 9 Jun 2021 18:59:17 +0630 Subject: [PATCH 02/15] added doc --- .../plugins/createAsyncStoragePersistor.md | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 docs/src/pages/plugins/createAsyncStoragePersistor.md diff --git a/docs/src/pages/plugins/createAsyncStoragePersistor.md b/docs/src/pages/plugins/createAsyncStoragePersistor.md new file mode 100644 index 0000000000..b7fc5b7f59 --- /dev/null +++ b/docs/src/pages/plugins/createAsyncStoragePersistor.md @@ -0,0 +1,69 @@ +--- +id: createAsyncStoragePersistor +title: createAsyncStoragePersistor for React Native (Experimental) +--- + +> VERY IMPORTANT: This utility is currently in an experimental stage. This means that breaking changes will happen in minor AND patch releases. Use at your own risk. If you choose to rely on this in production in an experimental stage, please lock your version to a patch-level version to avoid unexpected breakages. + +## Installation + +This utility comes packaged with `react-query` and is available under the `react-query/createAsyncStoragePersistor-experimental` import. + +## Usage + +- Import the `createAsyncStoragePersistor` function +- Create a new asyncStoragePersistor +- Pass it to the [`persistQueryClient`](../persistQueryClient) function + +```ts +import { persistQueryClient } from 'react-query/persistQueryClient-experimental' +import { createAsyncStoragePersistor } from 'react-query/createAsyncStoragePersistor-experimental' + +const queryClient = new QueryClient({ + defaultOptions: { + queries: { + cacheTime: 1000 * 60 * 60 * 24, // 24 hours + }, + }, +}) + +const asyncStoragePersistor = createAsyncStoragePersistor() + +persistQueryClient({ + queryClient, + persistor: asyncStoragePersistor, +}) +``` + +## API + +### `createAsyncStoragePersistor` + +Call this function (with an optional options object) to create a asyncStoragePersistor that you can use later with `persisteQueryClient`. + +```js +createAsyncStoragePersistor(options?: CreateAsyncStoragePersistorOptions) +``` + +### `Options` + +An optional object of options: + +```js +interface CreateAsyncStoragePersistorOptions { + /** The key to use when storing the cache to localstorage */ + asyncStorageKey?: string + /** To avoid localstorage spamming, + * pass a time in ms to throttle saving the cache to disk */ + throttleTime?: number +} +``` + +The default options are: + +```js +{ + asyncStorageKey = `REACT_QUERY_OFFLINE_CACHE`, + throttleTime = 1000, +} +``` From 8b0d8247c4c887ca11228f9771ee2503a78ac922 Mon Sep 17 00:00:00 2001 From: aung Date: Sat, 12 Jun 2021 11:53:30 +0630 Subject: [PATCH 03/15] added in doc manifest --- docs/src/manifests/manifest.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/src/manifests/manifest.json b/docs/src/manifests/manifest.json index 5d23536b78..e26cfc11db 100644 --- a/docs/src/manifests/manifest.json +++ b/docs/src/manifests/manifest.json @@ -312,6 +312,11 @@ "path": "/plugins/createWebStoragePersistor", "editUrl": "/plugins/createWebStoragePersistor.md" }, + { + "title": "createAsyncStoragePersistor (Experimental)", + "path": "/plugins/createAsyncStoragePersistor", + "editUrl": "/plugins/createAsyncStoragePersistor.md" + }, { "title": "broadcastQueryClient (Experimental)", "path": "/plugins/broadcastQueryClient", From 809e22b894744e4d9a6e8e4ff78c39a4a41980aa Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Mon, 14 Jun 2021 11:44:12 +0200 Subject: [PATCH 04/15] add createAsyncStoragePersisor to list of officially supported plugins --- docs/src/pages/plugins/persistQueryClient.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/src/pages/plugins/persistQueryClient.md b/docs/src/pages/plugins/persistQueryClient.md index d928e04dd3..9c726c8db9 100644 --- a/docs/src/pages/plugins/persistQueryClient.md +++ b/docs/src/pages/plugins/persistQueryClient.md @@ -10,6 +10,7 @@ title: persistQueryClient (Experimental) ## Officially Supported Persistors - [createWebStoragePersistor (Experimental)](/plugins/createWebStoragePersistor) +- [createAsyncStoragePersistor (Experimental)](/plugins/createAsyncStoragePersisor) ## Installation From 7a93b84bda56c385278c2c0f1beac1e0ebde2d51 Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Mon, 14 Jun 2021 11:48:35 +0200 Subject: [PATCH 05/15] add rollup config and separate package analogous to webStoragePersistor --- createAsyncStoragePersisor-experimental/package.json | 6 ++++++ package.json | 1 + rollup.config.js | 5 +++++ tsconfig.types.json | 1 + 4 files changed, 13 insertions(+) create mode 100644 createAsyncStoragePersisor-experimental/package.json diff --git a/createAsyncStoragePersisor-experimental/package.json b/createAsyncStoragePersisor-experimental/package.json new file mode 100644 index 0000000000..92bb62e890 --- /dev/null +++ b/createAsyncStoragePersisor-experimental/package.json @@ -0,0 +1,6 @@ +{ + "internal": true, + "main": "../lib/createAsyncStoragePersisor-experimental/index.js", + "module": "../es/createAsyncStoragePersisor-experimental/index.js", + "types": "../types/createAsyncStoragePersisor-experimental/index.d.ts" +} diff --git a/package.json b/package.json index bb919c3ccd..bd851bd495 100644 --- a/package.json +++ b/package.json @@ -52,6 +52,7 @@ "devtools", "persistQueryClient-experimental", "createWebStoragePersistor-experimental", + "createAsyncStoragePersistor-experimental", "broadcastQueryClient-experimental", "lib", "react", diff --git a/rollup.config.js b/rollup.config.js index 4e387b8988..528bebbaf5 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -30,6 +30,11 @@ const inputSrcs = [ 'ReactQueryCreateWebStoragePersistorExperimental', 'createWebStoragePersistor-experimental', ], + [ + 'src/createAsyncStoragePersistor-experimental/index.ts', + 'ReactQueryCreateAsyncStoragePersistorExperimental', + 'createAsyncStoragePersistor-experimental', + ], [ 'src/broadcastQueryClient-experimental/index.ts', 'ReactQueryBroadcastQueryClientExperimental', diff --git a/tsconfig.types.json b/tsconfig.types.json index 3d0c8ff748..01f73034e6 100644 --- a/tsconfig.types.json +++ b/tsconfig.types.json @@ -15,6 +15,7 @@ "./src/devtools/index.ts", "./src/persistQueryClient-experimental/index.ts", "./src/createWebStoragePersistor-experimental/index.ts", + "./src/createAsyncStoragePersistor-experimental/index.ts", "./src/broadcastQueryClient-experimental/index.ts" ], "exclude": ["./src/**/*"] From a11e80b92a17664199f30079805ad60711a73ca9 Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Mon, 14 Jun 2021 11:49:08 +0200 Subject: [PATCH 06/15] move createAsyncStoragePersistor to typeScript --- .../{index.js => index.ts} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/createAsyncStoragePersisor-experimental/{index.js => index.ts} (100%) diff --git a/src/createAsyncStoragePersisor-experimental/index.js b/src/createAsyncStoragePersisor-experimental/index.ts similarity index 100% rename from src/createAsyncStoragePersisor-experimental/index.js rename to src/createAsyncStoragePersisor-experimental/index.ts From ca037b185c6674fe1e8f223208385f79c345abdf Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Mon, 14 Jun 2021 11:50:02 +0200 Subject: [PATCH 07/15] run prettier on createAsyncStoragePersistor --- .../index.ts | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/createAsyncStoragePersisor-experimental/index.ts b/src/createAsyncStoragePersisor-experimental/index.ts index 84097e937d..742afe1c3e 100644 --- a/src/createAsyncStoragePersisor-experimental/index.ts +++ b/src/createAsyncStoragePersisor-experimental/index.ts @@ -1,45 +1,45 @@ -import AsyncStorage from '@react-native-community/async-storage'; +import AsyncStorage from '@react-native-community/async-storage' function throttle(func, wait) { if (wait === 0) { - wait = 100; + wait = 100 } - var timer = null; + var timer = null return function () { for ( var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++ ) { - args[_key] = arguments[_key]; + args[_key] = arguments[_key] } if (timer === null) { timer = setTimeout(function () { - func.apply(0, args); - timer = null; - }, wait); + func.apply(0, args) + timer = null + }, wait) } - }; + } } -export const asyncStoragePersistor = ({asyncStorageKey, throttleTime}) => { +export const asyncStoragePersistor = ({ asyncStorageKey, throttleTime }) => { return { persistClient: throttle(function (persistedClient) { - AsyncStorage.setItem(asyncStorageKey, JSON.stringify(persistedClient)); + AsyncStorage.setItem(asyncStorageKey, JSON.stringify(persistedClient)) }, throttleTime), restoreClient: async function restoreClient() { - const cacheString = await AsyncStorage.getItem(asyncStorageKey); + const cacheString = await AsyncStorage.getItem(asyncStorageKey) if (!cacheString) { - return; + return } - return JSON.parse(cacheString); + return JSON.parse(cacheString) }, removeClient: function removeClient() { - AsyncStorage.removeItem(asyncStorageKey); + AsyncStorage.removeItem(asyncStorageKey) }, - }; -}; + } +} From 6ec15285b26f0fc6efa6b44259eb08ff099fa049 Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Mon, 14 Jun 2021 11:50:36 +0200 Subject: [PATCH 08/15] use the same throttle function as the webStoragePersistor --- .../index.ts | 40 ++++++++----------- 1 file changed, 16 insertions(+), 24 deletions(-) diff --git a/src/createAsyncStoragePersisor-experimental/index.ts b/src/createAsyncStoragePersisor-experimental/index.ts index 742afe1c3e..94d368cfa0 100644 --- a/src/createAsyncStoragePersisor-experimental/index.ts +++ b/src/createAsyncStoragePersisor-experimental/index.ts @@ -1,29 +1,5 @@ import AsyncStorage from '@react-native-community/async-storage' -function throttle(func, wait) { - if (wait === 0) { - wait = 100 - } - - var timer = null - return function () { - for ( - var _len = arguments.length, args = new Array(_len), _key = 0; - _key < _len; - _key++ - ) { - args[_key] = arguments[_key] - } - - if (timer === null) { - timer = setTimeout(function () { - func.apply(0, args) - timer = null - }, wait) - } - } -} - export const asyncStoragePersistor = ({ asyncStorageKey, throttleTime }) => { return { persistClient: throttle(function (persistedClient) { @@ -43,3 +19,19 @@ export const asyncStoragePersistor = ({ asyncStorageKey, throttleTime }) => { }, } } + +function throttle( + func: (...args: TArgs) => any, + wait = 100 +) { + let timer: number | null = null + + return function (...args: TArgs) { + if (timer === null) { + timer = setTimeout(() => { + func(...args) + timer = null + }, wait) + } + } +} From 37f6a32983807a9e417feb774770f7244bdc428f Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Mon, 14 Jun 2021 11:51:51 +0200 Subject: [PATCH 09/15] add interface --- .../index.ts | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/createAsyncStoragePersisor-experimental/index.ts b/src/createAsyncStoragePersisor-experimental/index.ts index 94d368cfa0..0e6f8885a3 100644 --- a/src/createAsyncStoragePersisor-experimental/index.ts +++ b/src/createAsyncStoragePersisor-experimental/index.ts @@ -1,12 +1,23 @@ import AsyncStorage from '@react-native-community/async-storage' -export const asyncStoragePersistor = ({ asyncStorageKey, throttleTime }) => { +interface CreateAsyncStoragePersistorOptions { + /** The key to use when storing the cache */ + key?: string + /** To avoid spamming, + * pass a time in ms to throttle saving the cache to disk */ + throttleTime?: number +} + +export const asyncStoragePersistor = ({ + key, + throttleTime, +}: CreateAsyncStoragePersistorOptions) => { return { persistClient: throttle(function (persistedClient) { - AsyncStorage.setItem(asyncStorageKey, JSON.stringify(persistedClient)) + AsyncStorage.setItem(key, JSON.stringify(persistedClient)) }, throttleTime), restoreClient: async function restoreClient() { - const cacheString = await AsyncStorage.getItem(asyncStorageKey) + const cacheString = await AsyncStorage.getItem(key) if (!cacheString) { return @@ -15,7 +26,7 @@ export const asyncStoragePersistor = ({ asyncStorageKey, throttleTime }) => { return JSON.parse(cacheString) }, removeClient: function removeClient() { - AsyncStorage.removeItem(asyncStorageKey) + AsyncStorage.removeItem(key) }, } } From 06126123f34e5244a9769157883ad5433a012b3f Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Mon, 14 Jun 2021 14:43:01 +0200 Subject: [PATCH 10/15] get rid of AsyncStorage dependency --- .../index.ts | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/createAsyncStoragePersisor-experimental/index.ts b/src/createAsyncStoragePersisor-experimental/index.ts index 0e6f8885a3..ba8bd56e57 100644 --- a/src/createAsyncStoragePersisor-experimental/index.ts +++ b/src/createAsyncStoragePersisor-experimental/index.ts @@ -1,6 +1,12 @@ -import AsyncStorage from '@react-native-community/async-storage' +interface AsyncStorage { + getItem: (key: string) => Promise + setItem: (key: string, value: string) => Promise + removeItem: (key: string) => Promise +} interface CreateAsyncStoragePersistorOptions { + /** The storage client used for setting an retrieving items from cache */ + storage: AsyncStorage /** The key to use when storing the cache */ key?: string /** To avoid spamming, @@ -9,15 +15,17 @@ interface CreateAsyncStoragePersistorOptions { } export const asyncStoragePersistor = ({ - key, + storage, + key = `REACT_QUERY_OFFLINE_CACHE`, throttleTime, }: CreateAsyncStoragePersistorOptions) => { return { - persistClient: throttle(function (persistedClient) { - AsyncStorage.setItem(key, JSON.stringify(persistedClient)) - }, throttleTime), - restoreClient: async function restoreClient() { - const cacheString = await AsyncStorage.getItem(key) + persistClient: throttle( + persistedClient => storage.setItem(key, JSON.stringify(persistedClient)), + throttleTime + ), + restoreClient: async () => { + const cacheString = await storage.getItem(key) if (!cacheString) { return @@ -25,9 +33,7 @@ export const asyncStoragePersistor = ({ return JSON.parse(cacheString) }, - removeClient: function removeClient() { - AsyncStorage.removeItem(key) - }, + removeClient: () => storage.removeItem(key), } } From 163771586096f4f0aa5f2f21df33fc8f65904217 Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Tue, 15 Jun 2021 09:33:09 +0200 Subject: [PATCH 11/15] fix typo Persisor -> Persistor --- createAsyncStoragePersisor-experimental/package.json | 6 +++--- docs/src/pages/plugins/persistQueryClient.md | 2 +- .../index.ts | 0 3 files changed, 4 insertions(+), 4 deletions(-) rename src/{createAsyncStoragePersisor-experimental => createAsyncStoragePersistor-experimental}/index.ts (100%) diff --git a/createAsyncStoragePersisor-experimental/package.json b/createAsyncStoragePersisor-experimental/package.json index 92bb62e890..6a1bf0b2cb 100644 --- a/createAsyncStoragePersisor-experimental/package.json +++ b/createAsyncStoragePersisor-experimental/package.json @@ -1,6 +1,6 @@ { "internal": true, - "main": "../lib/createAsyncStoragePersisor-experimental/index.js", - "module": "../es/createAsyncStoragePersisor-experimental/index.js", - "types": "../types/createAsyncStoragePersisor-experimental/index.d.ts" + "main": "../lib/createAsyncStoragePersistor-experimental/index.js", + "module": "../es/createAsyncStoragePersistor-experimental/index.js", + "types": "../types/createAsyncStoragePersistor-experimental/index.d.ts" } diff --git a/docs/src/pages/plugins/persistQueryClient.md b/docs/src/pages/plugins/persistQueryClient.md index 9c726c8db9..1236d07867 100644 --- a/docs/src/pages/plugins/persistQueryClient.md +++ b/docs/src/pages/plugins/persistQueryClient.md @@ -10,7 +10,7 @@ title: persistQueryClient (Experimental) ## Officially Supported Persistors - [createWebStoragePersistor (Experimental)](/plugins/createWebStoragePersistor) -- [createAsyncStoragePersistor (Experimental)](/plugins/createAsyncStoragePersisor) +- [createAsyncStoragePersistor (Experimental)](/plugins/createAsyncStoragePersistor) ## Installation diff --git a/src/createAsyncStoragePersisor-experimental/index.ts b/src/createAsyncStoragePersistor-experimental/index.ts similarity index 100% rename from src/createAsyncStoragePersisor-experimental/index.ts rename to src/createAsyncStoragePersistor-experimental/index.ts From 9cf8bd48d3f018c250fb024b0611c7ccbb644b32 Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Wed, 16 Jun 2021 16:48:11 +0200 Subject: [PATCH 12/15] yay, typo again --- .../package.json | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {createAsyncStoragePersisor-experimental => createAsyncStoragePersistor-experimental}/package.json (100%) diff --git a/createAsyncStoragePersisor-experimental/package.json b/createAsyncStoragePersistor-experimental/package.json similarity index 100% rename from createAsyncStoragePersisor-experimental/package.json rename to createAsyncStoragePersistor-experimental/package.json From 73a20c4bc303e11ba6bd0634495a82539f3a81db Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Thu, 17 Jun 2021 08:13:55 +0200 Subject: [PATCH 13/15] use asyncThrottle instead of sync throttle --- .../index.ts | 52 ++++++++++++++----- 1 file changed, 38 insertions(+), 14 deletions(-) diff --git a/src/createAsyncStoragePersistor-experimental/index.ts b/src/createAsyncStoragePersistor-experimental/index.ts index ba8bd56e57..3b4852809c 100644 --- a/src/createAsyncStoragePersistor-experimental/index.ts +++ b/src/createAsyncStoragePersistor-experimental/index.ts @@ -20,9 +20,9 @@ export const asyncStoragePersistor = ({ throttleTime, }: CreateAsyncStoragePersistorOptions) => { return { - persistClient: throttle( + persistClient: asyncThrottle( persistedClient => storage.setItem(key, JSON.stringify(persistedClient)), - throttleTime + { interval: throttleTime } ), restoreClient: async () => { const cacheString = await storage.getItem(key) @@ -37,18 +37,42 @@ export const asyncStoragePersistor = ({ } } -function throttle( - func: (...args: TArgs) => any, - wait = 100 +function asyncThrottle( + func: (...args: ReadonlyArray) => Promise, + { interval = 100, limit = 1 }: { interval?: number; limit?: number } = {} ) { - let timer: number | null = null + if (typeof func !== 'function') throw new Error('argument is not function.') + const running = { current: false } + let lastTime = 0 + let timeout: number + const queue: Array = [] + return (...args: any) => + (async () => { + if (running) { + lastTime = Date.now() + if (queue.length > limit) { + queue.shift() + } - return function (...args: TArgs) { - if (timer === null) { - timer = setTimeout(() => { - func(...args) - timer = null - }, wait) - } - } + queue.push(args) + clearTimeout(timeout) + } + if (Date.now() - lastTime > interval) { + running.current = true + await func(...args) + lastTime = Date.now() + running.current = false + } else { + if (queue.length > 0) { + const lastArgs = queue[queue.length - 1]! + timeout = setTimeout(async () => { + if (!running.current) { + running.current = true + await func(...lastArgs) + running.current = false + } + }, interval) + } + } + })() } From f53d7c2df8a523425d72eba802b3c6b20d589484 Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Thu, 17 Jun 2021 08:16:46 +0200 Subject: [PATCH 14/15] default throttleTime to 1000 --- src/createAsyncStoragePersistor-experimental/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/createAsyncStoragePersistor-experimental/index.ts b/src/createAsyncStoragePersistor-experimental/index.ts index 3b4852809c..a6aaaeaadc 100644 --- a/src/createAsyncStoragePersistor-experimental/index.ts +++ b/src/createAsyncStoragePersistor-experimental/index.ts @@ -17,7 +17,7 @@ interface CreateAsyncStoragePersistorOptions { export const asyncStoragePersistor = ({ storage, key = `REACT_QUERY_OFFLINE_CACHE`, - throttleTime, + throttleTime = 1000, }: CreateAsyncStoragePersistorOptions) => { return { persistClient: asyncThrottle( @@ -39,7 +39,7 @@ export const asyncStoragePersistor = ({ function asyncThrottle( func: (...args: ReadonlyArray) => Promise, - { interval = 100, limit = 1 }: { interval?: number; limit?: number } = {} + { interval = 1000, limit = 1 }: { interval?: number; limit?: number } = {} ) { if (typeof func !== 'function') throw new Error('argument is not function.') const running = { current: false } From 279faaa52f3f5d47984573c4908bdabcd3bd431d Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Sun, 20 Jun 2021 17:58:57 +0200 Subject: [PATCH 15/15] Update src/createAsyncStoragePersistor-experimental/index.ts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Tomasz Krzyżowski --- src/createAsyncStoragePersistor-experimental/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/createAsyncStoragePersistor-experimental/index.ts b/src/createAsyncStoragePersistor-experimental/index.ts index a6aaaeaadc..905fad2099 100644 --- a/src/createAsyncStoragePersistor-experimental/index.ts +++ b/src/createAsyncStoragePersistor-experimental/index.ts @@ -48,7 +48,7 @@ function asyncThrottle( const queue: Array = [] return (...args: any) => (async () => { - if (running) { + if (running.current) { lastTime = Date.now() if (queue.length > limit) { queue.shift()