Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将参数传递给nodeJS fs回调函数_Javascript_Node.js_Callback - Fatal编程技术网

Javascript 如何将参数传递给nodeJS fs回调函数

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,

我尝试将一个参数传递给nodejs fs回调函数,但在回调函数中,它无法访问该参数,如下所示:

我试图将索引传递给“line”事件回调,但失败了,回调中的索引未定义。似乎关闭是不正确的

如何解决这个问题

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()
无法访问
索引