我想了解nodejs
異步行爲。考慮瞭解`nodejs`異步文件讀取
### text file: a.txt ###
1. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
{{b.txt}}
3. Donec et mollis dolor.
{{c.txt}}
########################
### text file: b.txt ###
2. Donec a diam lectus. Sed sit amet ipsum mauris.
########################
### text file: c.txt ###
4. Maecenas congue ligula ac quam viverra nec consectetur ante hendrerit.
########################
var readFile = function(file) {
fs.readFile(file, "utf8", function (err, file_content) {
if (err) console.log("error: " + err);
file_content.split(/\n/)
.forEach(function(line) {
var found = line.match(/\{\{(.*?)\}\}/);
found ? readFile(found[1]) : console.log(line);
});
});
};
我想輸出是
1. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
2. Donec a diam lectus. Sed sit amet ipsum mauris.
3. Donec et mollis dolor.
4. Maecenas congue ligula ac quam viverra nec consectetur ante hendrerit.
我得到的輸出是
1. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
3. Donec et mollis dolor.
2. Donec a diam lectus. Sed sit amet ipsum mauris.
4. Maecenas congue ligula ac quam viverra nec consectetur ante hendrerit.
我該如何解決這個問題?完成這樣一個任務的最習慣的方式是什麼?
更新:我想在這裏指出,我不想用readFileSync
或async
(目前,至少)。現在,我想了解用普通JS實現這一點的正確方法,並在此過程中更好地理解異步編程。
您可以利用readFileSync,或者你使用異步庫實現這一目標。 –
感謝您的評論,但我*不想*使用'readFileSync'或'async'(至少現在)。目前,我想了解用普通JS做這件事的正確方法。 – punkish