Javascript 如何将参数传递给nodeJS fs回调函数
我尝试将一个参数传递给nodejs fs回调函数,但在回调函数中,它无法访问该参数,如下所示: 我试图将索引传递给“line”事件回调,但失败了,回调中的索引未定义。似乎关闭是不正确的 如何解决这个问题Javascript 如何将参数传递给nodeJS fs回调函数,javascript,node.js,callback,Javascript,Node.js,Callback,我尝试将一个参数传递给nodejs fs回调函数,但在回调函数中,它无法访问该参数,如下所示: 我试图将索引传递给“line”事件回调,但失败了,回调中的索引未定义。似乎关闭是不正确的 如何解决这个问题 function readLog(path, index) { var rd = readline.createInterface({ input: fs.createReadStream(path), output: process.stdout,
function readLog(path, index) {
var rd = readline.createInterface({
input: fs.createReadStream(path),
output: process.stdout,
terminal: false
});
console.log("index: " + index);
rd.on('line', function (lineContent) {
console.log("index1: " + index);
if (lineContent.indexOf("keyword") > -1) {
keyword = "keyword " + index;
}
});
}
根据您编写的代码,回调函数位于
readLog
中,因此可以访问索引。回调函数不是在readLog
中实际定义的吗?(请注意,如果将索引
参数添加到回调中,而不将其包含在问题代码中,索引
参数将是未定义的
,并阻止对外部作用域索引
的访问)回调在readLog
函数中定义。我没有向回调中添加index
参数,我只是希望回调可以在readLog
中获得index
。代码中的console.log()
语句都应该可以访问传递给readLog()的index
参数。您不会将索引
值“传递”到rd.on()
回调。您只需直接从父范围访问它(javascript中的闭包就是这样工作的)。如果这不是您的问题,那么请澄清您的实际问题。我尝试运行,但输出是index:0 index1:undefined index1:undefined,console.log()
无法访问索引