【发布时间】:2015-02-23 21:11:39
【问题描述】:
我目前正在学习 node.js,我看到了 2 个同步和异步程序示例(同一个)。
我确实了解回调的概念,但我试图了解第二个(异步)示例的好处,因为即使存在这种差异,他们两个似乎也在做完全相同的事情......
您能否详细说明为什么第二个示例会更好? 我很乐意得到更广泛的解释,这将有助于我理解这个概念。
谢谢!!
第一个例子:
var fs = require('fs');
function calculateByteSize() {
var totalBytes = 0,
i,
filenames,
stats;
filenames = fs.readdirSync(".");
for (i = 0; i < filenames.length; i ++) {
stats = fs.statSync("./" + filenames[i]);
totalBytes += stats.size;
}
console.log(totalBytes);
}
calculateByteSize();
第二个例子:
var fs = require('fs');
var count = 0,
totalBytes = 0;
function calculateByteSize() {
fs.readdir(".", function (err, filenames) {
var i;
count = filenames.length;
for (i = 0; i < filenames.length; i++) {
fs.stat("./" + filenames[i], function (err, stats) {
totalBytes += stats.size;
count--;
if (count === 0) {
console.log(totalBytes);
}
});
}
});
}
calculateByteSize();
【问题讨论】:
标签: javascript node.js asynchronous synchronization