JSPM

js-perform-lock

1.0.5
    • ESM via JSPM
    • ES Module Entrypoint
    • Export Map
    • Keywords
    • License
    • Repository URL
    • TypeScript Types
    • README
    • Created
    • Published
    • 0
    • Score
      100M100P100Q29847F
    • License ISC

    js函数执行锁

    Package Exports

    • js-perform-lock

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (js-perform-lock) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    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)