Node.js 的異步機制由事件和回調函數——循環中的回調函數

var fs=require('fs');
var files =['a.txt','b.txt','c.txt'];

// for (var i = 0; i < files.length; i++) {
//事實上fs.readFile的回調函數中訪問到的i值都是循環退出之後的
//緣由是3次讀取文件的回調函數事實上是同一個實例,其中引用到的i值是上面循環執行結束後的值
//     fs.readFile(files[i],'utf-8',function(err,conetens){
//         console.log(files[i]+": "+conetens);
//     });
// }
for循環的輸出結果:
undefined: AAA
undefined: BBB
undefined: CCC
//大多數狀況下咱們能夠用數組的forEach方法解決這個問題 files.forEach(function(filename){ fs.readFile(filename,'utf-8',function(err,conetens){ console.log(filename+": "+conetens); }); });
forEach輸出結果:a.txt: AAA b.txt: BBB c.txt: CCC
相關文章
相關標籤/搜索