当前位置: 首页 > news >正文

丽水房产网站建设wordpress通过编辑器修改页面宽度

丽水房产网站建设,wordpress通过编辑器修改页面宽度,官方网站套餐,深圳宝安中心医院思路: 主要通过异步等待队列执行的原理。 当前执行的任务数达到最大值的时候,再继续执行的任务会放入等待队列里,直到当前任务执行结束后,减少一个当前任务数,并且判断队列中是否有任务,如果有则按顺序执…

 思路:

主要通过异步等待队列执行的原理。

当前执行的任务数达到最大值的时候,再继续执行的任务会放入等待队列里,直到当前任务执行结束后,减少一个当前任务数,并且判断队列中是否有任务,如果有则按顺序执行第一个。

class Scheduler {constructor(max) {this.max = max;this.count = 0; // 用来记录当前正在执行的异步函数this.queue = new Array(); // 表示等待队列}async add(promiseCreator, order) {/*此时count已经满了,不能执行本次add需要阻塞在这里,将resolve放入队列中等待唤醒,等到count<max时,从队列中取出执行resolve,执行,await执行完毕,本次add继续*/console.log("添加事件", order);if (this.count >= this.max) {console.log("放入队列中", order);await new Promise((resolve, reject) => this.queue.push(resolve));}this.count++;console.log("任务执行", order);let res = await promiseCreator();this.count--;if (this.queue.length) {console.log("队列启动");// 依次唤醒add// 若队列中有值,将其resolve弹出,并执行// 以便阻塞的任务,可以正常执行this.queue.shift()();}return res;}
}const timeout = time =>new Promise(resolve => {setTimeout(resolve, time);});const scheduler = new Scheduler(2);const addTask = (time, order) => {//add返回一个promise,参数也是一个promisescheduler.add(() => timeout(time), order).then(() => console.log(order));
};addTask(1000, '1');
addTask(500, '2');
addTask(300, '3');
addTask(400, '4');// output: 2 3 1 4
http://www.yayakq.cn/news/605869/

相关文章:

  • 网络公司做的网站根目录在哪苏州网站建设制作服务商
  • dhru商城网站建设快递公司网页模板
  • 和布克赛尔网站建设本地备份wordpress
  • 网站未收录成都设计院招聘
  • wordpress 仿站 菜单网站开发竞争性谈判
  • wordpress模板文件编辑插件无锡网站优化哪家好
  • 网站免费网站免费麻豆网站开发代码 免责声明
  • 网站建设公司如何生存短视频软件
  • 收录文案网站楼盘信息在哪里能查到
  • 百度怎么建设网站用什么编程语言做网站好
  • 做旅游网站的方法大型网站制作平台
  • 中移建设有限公司网站黑五类广告推广
  • 网站里会自动换图怎么做商标设计与制作
  • 鞍山网站设计制作主机做网站服务器怎么设置
  • mvc5 网站开发中药材天地网做中药零售网站
  • 网站彩票怎么做wordpress小红心插件
  • 别墅室内设计网站公众平台网站开发哪家好
  • 外贸网站模板大全网站建设公司方唯
  • 视频网站开发价格网站百度收录变少
  • 辽宁网站备案重庆市建设工程安全管理信息网
  • 免费网站自动跳转云阳如何做网站
  • 怎么做网站的seo排名知乎制作人是干嘛的
  • 大良营销网站建设价位如何做微信商城网站
  • 开传奇怎么建设自己的网站青岛网站建设信息公示
  • 网站海城做网站公司
  • 云浮市住房和城乡建设局网站wap网站推广方法
  • 网站服务空间网站内页标题
  • 做网站的销售能干什么网页设计作品论文
  • 网站创建器美发企业网站模板
  • 天津网站优化哪家快网站监测怎么做