nodejs 把异步变为同步方法

var http = require("http");
var fs = require("fs");
var server = http.createServer(function(req,res){
	if(req.url == "/favicon.ico"){
		return;
	}
	//遍历所有文件夹
	fs.readdir("./album/", function(err, files){
		//files是一个文件夹名的数组
		var wenjianjia = [];
		//立即执行,  迭代强行把异步函数,变为同步函数
		(function iterator(i){
			//遍历结束
			if(i == files.length){
				console.log(wenjianjia);
				return;
			}
			fs.stat("./album/" + files[i], function(err, stats){
				//检测成功之后做的事情
				if(stats.isDirectory()){
					//如果是文件夹,那么放入数组。不是,什么也不做。
					wenjianjia.push(files[i]);
				}

				iterator(i + 1);
			});
		})(0);
	});
	res.end();
});

server.listen(3000, "127.0.0.1");
效果图:


你可能感兴趣的:(前端-node.js)