node.js的异步

node.js 的异步一般是通过回调函数的方式来实现的
这种方式 

模块.回调方法名(参数,function(参数){
       回调处理
})
例如:
var fs = require('fs');

filenames = fs.readdirSync(".");
fs.readdir(".", function (err, filenames) {
    var i;
    for (i = 0; i < filenames.length; i++) {
        console.log(filenames[i]);
    }
});
console.log('Current uid: ' + process.pid); 


需要注意的是,因为异步的特性 ,要注意如果在回调函数之后的操作 是被立即执行的 ,不会等待回调函数处理完成。
所以要注意 如果在回调之后的处理要在整个回调过程执行完之后再执行,需要自己定义一个计数器 类似以下代码

fs = require('fs');
var totalBytes = 0;
filenames = fs.readdirSync(".");

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);
		}
	});	
}
在这个用例中 只有当所有文件的字节数都计算完毕 才会将最后结果打印出来  

你可能感兴趣的:(node.js的异步)