"use strict";
var fs = require('fs');
var colors = require('colors/safe');
fs.readdir(process.cwd(), function (err, files) {
files.forEach(function (item, index, array) {
fs.statSync(item, function (err, stat) {
if (stat.isDirectory()) {
console.log(colors.blue(item + '/'));
}
else if (stat.isFile()) {
console.log(colors.green(item));
}
});
});
});
这个程序本来是想打印出当前目录下的文件的,但是如果我把fs.stat换成fs.statSync后,就无法输出了,这是为啥呢? node的版本是v0.12.7
因為statSync 是同步的方法啊,結果直接得到了 也就是 stat = fs.statSync(item) 然後判斷 stat.isDirectory()
來看nodejs的File System模組提供了很多種方法,這些方法大致可以分別為兩類:一類是異步+回呼的; 一類是同步的。其中stat就是屬於前者,statSync就是屬於後者。來看看使用區別:
看完這些,你就明白了吧。