在异步函数返回的Promise完成之前,其它调用都会直接被忽略掉,防止用户快速点击时多次触发异步函数。
使用方法有3种,以适应各种场景:
- 装饰类字段箭头函数
- 装饰类成员函数
- 直接包裹函数
代码如下:
import { lock } from 'at-lock';
class Test {
// 1. 装饰类字段箭头函数
@lock()
a = async () => {};
// 2. 装饰类成员函数
@lock()
async b() {}
// 3. 用lock直接包裹函数 lock(()=>{})
c = lock(async () => {});
}