
如何优雅的处理Nodejs中的异步回调
1个回答
2017-12-06 · 百度知道合伙人官方认证企业
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注

展开全部
初级方案:通过递归处理异步回调
我们可以使用递归作为代码的执行控制工具。把需要执行的操作封装到一个函数中,在回调函数中通过递归调用控制代码的执行流程,废话不多说,上个代码吧:
var fs = require('fs');// 要处理的文件列表var files = ['file1', 'file2', 'file3'];function parseFile () { if (files.length == 0) { return;
} var file = files.shift();
fs.readFile(file, function (err, data) { // 这里处理文件数据
parseFile(); // 处理完毕后,通过递归调用处理下一个文件 });
}// 开始处理parseFile();
以上代码已依次处理数组中的文件为例,介绍了通过递归的方式控制代码的执行流程。
应用到一些简单的场景中还是不错的,比如:我们将一个数组中的数据,依次保存到数据库中就可以采用这种方式。
通过递归的方式可以解决一些简单的异步回调问题。不过对于处理复杂的异步回调还是显得有些无能为力(如需要同步多个异步操作的结果)。
我们可以使用递归作为代码的执行控制工具。把需要执行的操作封装到一个函数中,在回调函数中通过递归调用控制代码的执行流程,废话不多说,上个代码吧:
var fs = require('fs');// 要处理的文件列表var files = ['file1', 'file2', 'file3'];function parseFile () { if (files.length == 0) { return;
} var file = files.shift();
fs.readFile(file, function (err, data) { // 这里处理文件数据
parseFile(); // 处理完毕后,通过递归调用处理下一个文件 });
}// 开始处理parseFile();
以上代码已依次处理数组中的文件为例,介绍了通过递归的方式控制代码的执行流程。
应用到一些简单的场景中还是不错的,比如:我们将一个数组中的数据,依次保存到数据库中就可以采用这种方式。
通过递归的方式可以解决一些简单的异步回调问题。不过对于处理复杂的异步回调还是显得有些无能为力(如需要同步多个异步操作的结果)。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询