梦想吧

579 分类: WEB前端

JS多任务的实现

// 当前运行数量
let count = 0;
// 运行次数
let number = 0;
/**
 * 工作间
 * @private
 */
function _work(c, n) {
    // 如果任务数已经达到
    if(number >= n || count >= c) {
        return;
    }else{
        // 任务没达到最高,递归
        count++;
        _work(c, n)
    }
    // 在运行异步之前先加上运行次数
    number++;
    // 使用setTimeout模拟异步
    let time = Math.random()*10;
    setTimeout(function () {
        console.log(time);
        count--;
        _work(c, n);
    }, time*1000);
}

/**
 * 开始任务
 */
function start() {
    _work(5, 10);
}
start();

#JS, JavaScript

作者: Jim

版权: 除特别声明,均采用BY-NC-SA 4.0许可协议,转载请表明出处

目录Content

评论