16
使用ES6的Promise.all()时限制并发的最佳方法是什么?
我有一些代码遍历从数据库中查询出来的列表,并对该列表中的每个元素进行HTTP请求。该列表有时可能是一个相当大的数目(成千上万个),并且我想确保我不会遇到具有成千上万个并发HTTP请求的Web服务器。 该代码的缩写版本目前看起来像这样... function getCounts() { return users.map(user => { return new Promise(resolve => { remoteServer.getCount(user) // makes an HTTP request .then(() => { /* snip */ resolve(); }); }); }); } Promise.all(getCounts()).then(() => { /* snip */}); 该代码在节点4.3.2上运行。重申Promise.all一下,是否可以进行管理以便在任何给定时间仅进行一定数量的承诺?