js-perform-lock

js函数执行锁

Usage no npm install needed!

<script type="module">
  import jsPerformLock from 'https://cdn.skypack.dev/js-perform-lock';
</script>

README

js函数执行锁

  • 这样能起到节省代码的高开销不必要的计算,节流,防抖,异步转队列
  • new一个实例重构业务函数,返回新的函数

第一步 安装依赖


npm install js-perform-lock

第二步 引入依赖


import { delayPerform, firstPerform, intervalPerform, passivePerform, queuePerform } from "js-perform-lock";
//  * 这样能起到节省代码的高开销不必要的计算,节流,防抖
//  * new一个实例重构业务函数,返回新的函数

/**
 * @description 乐观锁-最后放行执行 (默认节流断点时间150毫秒)
 * d函数多次循环连续执行过程中,如果上一次执行与下一次执行之间递归比较时间间隔小于500毫秒将不执行代码,直到函数执行后500毫秒内没有重新执行才会放行最后一次代码执行。
 */
var d = (new delayPerform(500)).refactor(function( /**可接收参数**/ ){
  // 业务代码
});


/**
 * @description 乐观锁-抢先放行执行 (默认节流断点时间150毫秒)
 * f函数多次循环连续执行过程中,如果上一次执行与下一次执行之间递归比较时间间隔小于500毫秒的只会放行第一次执行。直到执行间隔大于500毫秒才会重新比较放行下个阶段的第一次执行。
 */
var f = (new firstPerform(500)).refactor(function( /**可接收参数**/ ){
  // 业务代码
});


/**
 * @description 乐观锁-间隔放行执行 (默认节流断点时间150毫秒)
 * i函数多次循环连续执行过程中第一次运行执行后每隔500毫秒或者大于这个时间才会放行代码运行。
 */
var i = (new intervalPerform(500)).refactor(function( /**可接收参数**/ ){
  // 业务代码
});


/**
 * @description 乐观锁-被动放行执行
 * p_f函数第一次执行后会给函数加一把锁,只有p.unlock解锁后。才能执行下一次
 */
var p = new passivePerform();
var p_f = p.refactor(function( /**可接收参数**/ ){
  // 业务代码
});
// 解锁
p.unlock();


/**
 * @description 悲观锁-队列放行执行
 * q_f函数多次循环连续执行时会把所有的执行任务用队列的形式排好,执行一次后直到q.unlock解锁后会自动执行下一次直到队列里面的任务都执行完。中间也可以q.dissolve解散当前现存的队列
 */
var q = new queuePerform();
var q_f = q.refactor(function( /**可接收参数**/ ){
  // 业务代码
});
// 解锁
q.unlock();
// 解散
q.dissolve();

原作者

  • levy

创建时间

  • 2021-1-29

更新时间

  • 2021-1-29 (levy)