利用 promise 如何模拟实现限制最大并发请求的案例?
RT 求大佬一份 promise 实现的最大并发请求的 demo
最好能说明下应用场景,可以打印出直观的效果~
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
RT 求大佬一份 promise 实现的最大并发请求的 demo
最好能说明下应用场景,可以打印出直观的效果~
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
这个题其实网上挺多实现的。npm中有很多实现这个功能的第三方包,比如async-pool、es6-promise-pool、p-limit,也可以直接拿来用。
这个题的重点就是把任务放在队列里(function 或者基础类型、url、对象等等),然后执行,执行完了就从队列中取一个。
我就用一个字符串当作条件了。然后每次执行和执行完了都会从队列中重新取一个。
吐槽一下更新,没一下子找到答案在哪回复……
可以看一下楼上所说的几个库的实现,拿
async-pool
来说,是通过维护正在执行的任务列表和限制数做长度比较,如果超过限制,通过Promise.race
竞速,将完成的任务删除、添加新任务。场景:大文件分片上传……
这是我以前写的对 Promise.map 的实现, 可以看看。