首页 > web前端 > js教程 > 如何依次解决文件读取的 Promise?

如何依次解决文件读取的 Promise?

DDD
发布: 2024-12-29 16:52:14
原创
839 人浏览过

How Can I Sequentially Resolve Promises for File Reading?

如何对 Promise 解析进行排序

问题:

考虑下面的代码,该代码连续读取文件数组。

var readFile = function(file) {...};
var readFiles = function(files) {...};
登录后复制

虽然这个递归解决方案有效,需要一种不使用 readSequential 函数的更简单的方法。

解决方案 1:Promise.all

最初尝试了 Promise.all,但它同时调用了所有 readFile 调用.

var readFiles = function(files) {...};
登录后复制
登录后复制
登录后复制

解决方案 2:异步函数

如果环境支持,可以使用异步函数。

async function readFiles(files) {...};
登录后复制

解决方案 3:异步生成器

对于延迟读取,异步生成器可以

async function* readFiles(files) {...};
登录后复制

解决方案 4:For 循环

可以使用简单的 for 循环来代替。

var readFiles = function(files) {...};
登录后复制
登录后复制
登录后复制

解决方案5:Reduce

或者,使用reduce的紧凑解决方案

var readFiles = function(files) {...};
登录后复制
登录后复制
登录后复制

解决方案 6:Promise 库

像 Bluebird 这样的 Promise 库提供了用于此目的的实用方法。

var Promise = require("bluebird");
var readFileAll = Promise.resolve(files).map(fs.readFileAsync,{concurrency: 1 });
登录后复制

以上是如何依次解决文件读取的 Promise?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板