AsyncLocalStorage is an unencrypted, asynchronous, persistent, key-value storage system that is global to the app in web browser. It should be used instead of LocalStorage.
Cons of LocalStorage
LocalStorage is synchronous, each local storage operation you run will be one-at-a-time. For complex applications this is a big no-no as it'll slow down your app's runtime.
Pros of AsyncLocalStorage
AsyncLocalStorage is asynchronous, each local async storage operation you run will be multi-at-a-time. It'll speed up your app's runtime.
The AsyncLocalStorage JavaScript code is a facade that provides a clear JavaScript API, real Error objects, and non-multi functions. Each method in the API returns a Promise object.
async-local-storage is available on npm. It can be installed with the following command:
npm install --save @createnextapp/async-local-storage
async-local-storage is available on yarn as well. It can be installed with the following command:
yarn add @createnextapp/async-local-storage
To learn more how to use async-local-storage:
import AsyncLocalStorage from '@createnextapp/async-local-storage'
storeData = async () => {
try {
await AsyncLocalStorage.setItem('@key', 'value')
} catch(e) {
// error
}
}
readData = async () => {
let data
try {
data = await AsyncLocalStorage.getItem('@key')
} catch(e) {
// error
}
console.log(data)
/*
output:
value
*/
}
If you think any of the async-local-storage
can be improved, please do open a PR with any updates and submit any issues. Also, I will continue to improve this, so you might want to watch/star this repository to revisit.
We'd love to have your helping hand on contributions to async-local-storage
by forking and sending a pull request!
Your contributions are heartily ♡ welcome, recognized and appreciated. (✿◠‿◠)
How to contribute:
- Open pull request with improvements
- Discuss ideas in issues
- Spread the word
- Reach out with any feedback