Pra*_*ate 5 asynccallback fs node.js
我如何获得的参数fs.read,fs.stat...方法从回调中?
例如,如果我想基于其大小的下载(coffeeScript)代码片段来处理文件
#assuming test1.txt exists
filename = "./test1.txt"
fs.stat filename, (err, stats) ->
data = filename:filename,size:stats.size
console.log data
#further process filename based on size
filename = "./test2.txt"
Run Code Online (Sandbox Code Playgroud)
版画
{ filename: './test2.txt', size: 5 }
Run Code Online (Sandbox Code Playgroud)
因为filename设置为"./test2.txt".如果我在fs.stat回调中使用filename变量处理/读取文件, 那么它将使用test2.txt哪个不是预期的.
我希望在回调中看到的是
{ filename: './test1.txt', size: 5 }
Run Code Online (Sandbox Code Playgroud)
不要以为现在就有办法做到这一点.在某些时候添加到节点可能是一件好事.如果你要做很多事情,你可以放fs.stat一个友好的包装.
var friendlyStat = function(filename, callback){
fs.stat(filename, function(err, stats){
stats.filename = filename
if(err) {
callback(err);
} else {
callback(err, stats);
}
})
}
friendlyStat('test1.txt', function(err, stat){ console.log(stat.filename);});
friendlyStat('test2.txt', function(err, stat){ console.log(stat.filename);});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4806 次 |
| 最近记录: |