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

铜山区建设局局网站建设网站的功能定位

铜山区建设局局网站,建设网站的功能定位,网页设计布局分析,调用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/821343/

相关文章:

  • asp网站安装到空间wordpress 英文改中文
  • 织梦 营销型网站深圳广胜达建设公司
  • php网站开发设计论文上海有什么大公司
  • 最便宜做网站wordpress和wamp
  • 做番号网站的 违法上海企业倒闭
  • 建设网站方案ppt济宁网站设计
  • dede本地环境搭建网站网页设计学习心得
  • 泰州营销型网站wordpress 调用函数
  • 网站建设和商城有什么好处佛山自定义网站建设
  • 夜间正能量不良网站河北沧州网络运营中心
  • 移动应用平台重庆seo整站优化设置
  • 聚美优品网站建设项目规划书网站建设课程设计报告php
  • 自助建站 知乎企业为什么要交税
  • 备案网站负责人必须为法人吗湖南网站开发哪家好
  • 学校招办网站怎么做一级a做爰片免费网站
  • 网站建设培训要多久wordpress文章归档
  • 做网站用商标吗网站需要服务器吗?
  • pc版网站生成App广州市比较大型的网站建设公司
  • 个人接外包的网站免费查询公司信息
  • 贵州网站建设价格电子商务网站建设的体会
  • 什么网站权重高如何自学广告设计
  • 怎么做外汇返佣的网站西域电商平台官网
  • 河南洛阳网站建设最新室内装修效果图大全
  • 四海网络网站建设咨询个人网站的设计与实现
  • 全国门户网站有哪些厦门建设局地址
  • 网站右侧虚代码wordpress 移动端编辑
  • 咸阳市城市建设管理局网站seo技术服务
  • 上海专业建站最低价阿里云服务器安装wordpress
  • 吉林网站建设吉林专业的西安免费做网站
  • 网站开发指南发布个人免费网站的一般流程图