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

大庆市网站建设公司佛山网站建设专家评价

大庆市网站建设公司,佛山网站建设专家评价,四川建设学习网,网站标题关键词描述asyncPool应用场景 一个不太常见的极端场景,当我们为了某个操作需要发生异步请求的时候,等待所有异步请求都完成时进行某些操作。这个时候我们不在简简单单的发送 1 - 2 个请求而是 5 - 10个(其实极端场景式 很多很多个请求,这个…

asyncPool应用场景

一个不太常见的极端场景,当我们为了某个操作需要发生异步请求的时候,等待所有异步请求都完成时进行某些操作。这个时候我们不在简简单单的发送 1 - 2 个请求而是 5 - 10个(其实极端场景式 很多很多个请求,这个打个比喻更容易理解)。
通常情况下我们通过 promise.all 可以保证多个请求完成后进行操作,等待所有的promise对象都达到了resovle再执行then方法进行操作。这样是可以完成的,但是当我们发送1000个请求,等待1000个请求完成后在进行操作,首先不说等待完成操作,就简简单单的http请求瞬间发生1000个,你猜浏览器会怎么样?只能说友谊的小船说翻就翻,因为瞬间发出大量的http请求,导致浏览器堆积了很多栈,导致内存溢出。

并发控制孕育而生,如何实现思路?

身为开发者我们无法控制http请求的多少,但是我们能控制异步任务的数量,具体来说就是我们可以控制promise的实例化数量,用以避免高并发带来的问题。当我们想要的(数量自己输入)promise的数量全部resolve的时候,再将其他的promise放入队列。

直接放代码进行解释:
	async function asyncPool(poolLimit = 1,array = [] , interatorFn ){const result = [];const executing = [];for(let item in array){// 生成一个 promise 实例,并在 then 方法中的 onFullfilled 函数里返回实际要执行的 promise,const promise = interatorFn(item);result.push(promise);const e = promise.then(()=>{// 将执行完毕的 promise 移除executing.splice(executing.indexOf(e),1)})executing.push(e)if(poolLimit >= array.length){await Promise.race(executing);}}}return Promise.all(result);
}// ----------- 使用 ------- //function b() {return new Promise((resolve, rejetc) => {setTimeout(() => {resolve('b')}, 100)})}function c(i) {return new Promise((resolve, rejetc) => {setTimeout(() => {resolve('c')}, 100)})}function d() {return new Promise((resolve, rejetc) => {setTimeout(() => {resolve('d')}, 100)})}let a = asyncPool(2, [b(), c(), d()], (i) => {return Promise.resolve(i);});a.then(res => {console.log(res)})
http://www.yayakq.cn/news/314297/

相关文章:

  • 桂林市自来水公司网站360搜索指数
  • 建个普通网站多少钱网站没有备案可以做seo优化吗
  • 成都建设网站首页网站空间 购买
  • 陕西网站建设优化建站网络营销和推广做什么
  • 京东网站建设框架图如何删除hao123主页
  • 环境网站模板百度h5游戏中心
  • 上海大学生兼职做网站做物流网站找哪家好
  • 长春做网站公司哪家好科技型中小企业查询平台
  • 织梦做商城类网站好做吗北京房价
  • 做设计在哪个网站找图片一张图看懂企业所得税
  • 如何做网站不被查网页设计的岗位叫什么
  • 福州专业网站建设公司自己网站做搜索引擎优化
  • 为什么不用wordpress寿光网站优化
  • 服务态度 专业的网站建设云南网站制作怎么计费
  • 网站建设规范布局有几部分深圳哪个公司做网站好
  • 电子商务网站规划与建设毕业设计做网站有哪些需求
  • 石家庄网站建设 河北供求网售后软件网站开发
  • 中山骏域网站建设本地广东中山网站建设
  • 宁波网站建设招商加盟秦皇岛建设局
  • 网站根目录权限互联科技行业网站
  • 网站建设理由和目的炫酷的网站开发
  • 河南网站备案地址网站 开发 成本
  • 东莞网站开发报价网站开发的案例分析模板
  • 建立链接网站模板拓客系统
  • 网站优化 福州建设个人网站教程
  • 网站开发公司更换如何开个公司网站
  • app制作过程和网站一样吗彩票网站的建设
  • 展示型网站建设模板重庆的公司
  • 做磁力解析网站重庆seo是什么
  • 合肥知名网站建设公司4c网络营销策略