![](/img/trans.png)
[英]Node.js - Trying to embed callback function inside a callback function
[英]trying to understand node.js callback scheme
function load_file_contents(path, callback) {
fs.open(path, 'r', function (err, f) {
if (err) {
callback(err);
return;
} else if (!f) {
callback(make_error("invalid_handle",
"bad file handle from fs.open"));
return;
}
fs.fstat(f, function (err, stats) {
if (err) {
callback(err);
return;
}
if (stats.isFile()) {
var b = new Buffer(10000);
fs.read(f, b, 0, 10000, null, function (err, br, buf) {
if (err) {
callback(err);
return;
}
fs.close(f, function (err) {
if (err) {
callback(err);
return;
}
callback(null, b.toString('utf8', 0, br));
});
});
} else {
calback(make_error("not_file", "Can't load directory"));
return;
}
});
});
}
load_file_contents(
"test.txt",
function (err, contents) {
if (err)
console.log(err);
else
console.log(contents);
}
);
在这段代码中,我不太了解这个“ f”是从哪里来的? 在“ fs.open()”之后,有一行
" } else if (!f) {"
这是什么意思,这f从哪里来?
f
是文件描述符,如果能够打开该文件,则传递给fs.open()
的回调。
else if (!f) {
callback(make_error("invalid_handle",
"bad file handle from fs.open"));
return;
}
正在检查文件描述符是否虚假(大概是在检查它是否为null或未定义),并使用错误调用函数自己的回调。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.