用法

//导入import asyncPool from "../lib/index";/* 参数 myIterator    要并发解决的可迭代对象 handler    function 异步处理函数,返回promise, workers    Number 并发数 返回值    Array limit个promise数组*/asyncPool(myIterator,handler,workers);

应用场景

1、页面内含大量图片时限度并发HTTP连接数

let imgs = [ 'https://www.yuanzhua.cn/img_for_demo/pic_001.jpg','https://www.yuanzhua.cn/img_for_demo/pic_002.jpg', 'https://www.yuanzhua.cn/img_for_demo/pic_003.jpg','https://www.yuanzhua.cn/img_for_demo/pic_004.jpg','https://www.yuanzhua.cn/img_for_demo/pic_005.jpg','https://www.yuanzhua.cn/img_for_demo/pic_006.jpg', 'https://www.yuanzhua.cn/img_for_demo/pic_007.jpg','https://www.yuanzhua.cn/img_for_demo/pic_008.png', 'https://www.yuanzhua.cn/img_for_demo/pic_009.jpg', 'https://www.yuanzhua.cn/img_for_demo/pic_010.jpg', 'https://www.yuanzhua.cn/img_for_demo/pic_011.png', 'https://www.yuanzhua.cn/img_for_demo/pic_012.jpg', 'https://www.yuanzhua.cn/img_for_demo/pic_013.jpg', 'https://www.yuanzhua.cn/img_for_demo/pic_014.jpg','https://www.yuanzhua.cn/img_for_demo/pic_015.jpg'];function loadImg(url){            return new Promise((resolve, reject)=>{                let img=new Image();                img.src=url;                img.style.width=                img.onload=function () {                    this.width=200;                    // this.                    document.body.append(this);                    resolve()                }                img.onerror=function () {                    reject()                }            });}Promise.all(asyncPool(imgs.values(),loadImg,5)).then(() => console.log('done'))

Github开源地址 https://github.com/yuanzhuacn/asyncPool