0.2.4 • Published 4 years ago
babel-plugin-async-lock v0.2.4
babel plugin for async lock
Prevent unnecessary click callback trigger by fast click. Especcily for async callback, like requesting backend API.
Installation
npm i babel-plugin-async-lockUsage
// your babel config
module.exports = {
plugins: [
'babel-plugin-async-lock',
{
exclude: 'node_modules',
extensions: ['.jsx', '.tsx']
}
]
}Options
excludeextensions
Why
import React from 'react'
function App() {
const handleClick = async () => {
const res = await fetch('/api')
}
return <button onClick={handleClick}>send request</button>
}While we fetching api, User can still click the button, and trigger the new fetching, which is unneccessary and mostly unexpected
What the plugin do
it will transform the code, automaticlly add a locker to every async function
Knowing Issue
- Does't support
Class methodyet