如何将一个大的Promise.all拆分为几个较小的部分依次执行

  前段时间在用Promise.all执行一个非常大批量的操作时遇到一个奇怪的问题。

成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站建设、做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的竹山网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

  这个Promise.all需要遍历一个指定目录中的所有文件,并以异步的方式读取文件内容并进行后续操作。由于目录中的文件数目比较多(大约8000+),Promise.all在执行的过程中有许多文件读取失败,但是如果指定一个文件数量比较少的目录则不存在这个问题。查看浏览器的Network会看到一开始的时候这些文件的访问都是pending状态,但是随着数量的增加,一部分pending最后都变成failed了。然后在Console中也会看到有许多的Failed to load resource: net::ERR_INSUFFICIENT_RESOURCES错误。

  然后又在其它不同的浏览器中进行了尝试,发现Chrome内核的浏览器(Chrome和Edge)基本都存在这个问题,但是FireFox工作正常。初步断定有可能是浏览器自身内部机制导致的,所以尝试看看能否将并发的数量减少以规避错误。

  下面是优化之前的代码:

var aPromises = [];
paths.forEach(function(sPath) {
    aPromises.push(readDocument(sPath).then(function(oDocument) {
// other process
        return oDocument;
    }));
});
return Q.all(aPromises);

文章题目:如何将一个大的Promise.all拆分为几个较小的部分依次执行
网站路径:http://hxwzsj.com/article/dsojjih.html

其他资讯

Copyright © 2025 青羊区翔捷宏鑫字牌设计制作工作室(个体工商户) All Rights Reserved 蜀ICP备2025123194号-14
友情链接: 成都网站建设流程 成都网站建设 泸州网站建设 成都企业网站建设公司 营销型网站建设 外贸网站建设 企业手机网站建设 网站制作 网站制作公司 网站设计制作报价 响应式网站建设 成都网站设计 成都网站制作 公司网站建设 自适应网站设计 网站建设改版 成都响应式网站建设 响应式网站设计方案 成都营销网站建设 成都做网站建设公司 成都网站设计 成都响应式网站建设公司