我是第一次研究STDI/O。我添加两个数字以将总和打印到 STDOUT。从 STDIN 读取输入。输入的第一行将包含一个整数 (N(,用于告知输入中还有多少行。后续 N 行中的每一行都包含 2 个整数(。并将每对的总和打印在单独的 STDOUT 行上。
const readline=require('readline');
const readlinInterface=readline.createInterface(process.stdio,process.stdout);
addNumber();
async function addNumber(){
let length=await inputValue("please enter the value for N numbers to be added");
let sum = await addValue(length);
console.log("sum",sum)
}
async function addValue(length){
let num,sum;
let i;
for( let i=0;i<length;i++){
num[i]=await inputValue("Enter num");
sum+=num[i];
}
return sum;
}
function inputValue(text){
return new Promise((resolve,reject)=>{
readlinInterface.question(text,resolve)
});
}
我不确定运行节点添加时出了什么问题.js错误被抛出为 ** 无法读取未定义的属性"符号(按键解码器("** 它指向这里
readline.js:1047
if (stream[KEYPRESS_DECODER]) return;
我被困了两天,任何人都可以帮忙。任何帮助,不胜感激。
更新:
const readline=require('readline');
const readlineInterface = readline.createInterface({
input: process.stdin,
output: process.stdout
});
function add (){
readlineInterface.on('line',(val)=>{console.log("reading",val)
});
}
readlineInterface.on('line',(numberLength)=>{console.log(numberLength)
let i=numberLength;
let sum;
while(i){
console.log("i",i)
// add();
readlineInterface.on('line',async (val)=>{ console.log("reading1",val) });
readlineInterface.on('line',async (val)=>{ console.log("reading2",val) });
i--;
}
});
但不起作用
请检查创建接口函数的使用情况
实际上,NodeJS尝试从"input"属性中获取输入流,但什么也没找到,然后尝试使用该流(未定义(
const readlineInterface = readline.createInterface({
input: process.stdin,
output: process.stdout
});
但是没有"数据"事件。请查看文档
可能,您需要"行"事件