如何在TypeScript(ES5 +)中修复此代码,以便readInterface.on()
的回调函数可以访问在函数外部声明的lines
数组?
const readline = require('readline');
const fs = require('fs');
const readInterface = readline.createInterface({
input: fs.createReadStream("data.list"),
output: false,
silent: true,
console: false
});
var lines: string[] = [];
readInterface.on('line', function(line) {
if (line && line.indexOf("#") !== 0) {
this.lines.push(line);
}
});
lines.forEach(line => {
console.log(line);
});
readInterface.on('line', line=> {
if (line.indexOf("#") !== 0 && line) {
this.lines.push(line);
}
});
在打字稿中使用箭头功能可帮助您指向正确的this参考。否则,您将引用当前使用的功能。