这就是我所拥有的:
#! /usr/bin/env node
var fs = require('fs'),
files = fs.readdirSync(__dirname + '/files/'),
files.forEach(function(file) {
fs.readFile(__dirname + '/files/' + file, 'utf8', function (error, data) {
console.log(data)
})
})
即使我使用 readdirSync
,输出仍然是异步的:
alex@alex-K43U:~/node/readFiles$ node index.js
foo 1
foo 3
foo 2
如何修改代码使输出变成同步的?
alex@alex-K43U:~/node/readFiles$ node index.js
foo 1
foo 2
foo 3
forEach
不能保证顺序,你应该尝试使用一个简单的 for 循环。此外,如果你想同步读取文件,应该使用 readFileSync。 - DrakaSAN