javascript - 我正在使用 readline 为项目输入一个数字,但无论我输入什么,它都会出现两次,即如果我按 1,它会出现 11,等等
问题描述
我知道这可能是一个愚蠢的问题,但我刚刚开始编码,任何帮助将不胜感激。我正在使用第一部分来调用我的函数,并使用底部来发送它。它不完整,我知道,但我只是想弄清楚为什么它输入两位数。
var main = require("./toDoListMain");
var readline = require('readline');
var rl = readline.createInterface(process.stdin,process.stdout);
console.log("1. Add a list"+'\n' + "2. Select list" + '\n' + "3. Remove a list" + '\n'+ "4. View lists "+ '\n' + "5. Exit");
根据一个人之前的回答,这将决定发送哪个函数。
rl.question("What do you want to do?", function(firstAnswer){
if(firstAnswer == 1){
addList();
}
else if(firstAnswer == 2){
showList();
select();
}
else if(firstAnswer == 3){
selectList();
removeList();
}
else if (firstAnswer == 4){
showList();
}
else {
rl.close;
process.exit();
}
});
//第二部分开始
var readline = require('readline');
var rl = readline.createInterface({
input: process.stdin,
output: process.stdout});
var toDoList = [];
var list = {
addName : function(name){
rl.question("What is the list's name?", function(answer){
var listName = answer;
console.log("List's name: " + listName);
toDoList = toDoList.concat(listName);
})},
//console.log(animals.push('cows'));
//console.log(numLists.push(listName));
selectList : function(list){
console.log("You chose 2");
console.log(toDoList);
rl.question("Which list do you pick? 1-"+ toDoList.length, chosenList);
},
removeList : function(remove){
console.log("You chose 3");
},
showList : function(show){
console.log("You chose 4");
console.log(toDoList);
},
goOut : function(quit){
console.log("You chose 5");
rl.close();
process.exit();
}
}
exports.app = list;
解决方案
你得到一个重复的条目,因为你在第二部分创建了第二个 readline 接口,即你readline.createInterface
在你的应用程序中调用了两次。
要解决您的问题,请删除对readline.createInterface
.
推荐阅读
- node.js - 是否可以直接向 Puppeteer 获取 Puppeteer 音频馈送和/或输入音频?
- php - HTML 选项:显示值而不是实际文本
- javascript - 查找对象对象的所有属性?
- mysql - mysql char、varchar 和十进制字节大小
- java - 如何在 Selenium Webdriver 3 中为 Firefox 驱动程序设置默认配置文件?
- android - 在 Android 中,任何应用程序都可以在不需要任何许可的情况下窃取焦点
- javascript - ReactJS:RestAPI JSON 响应:如何解析
- java - JavaFX FileChooser 新文件
- javascript - 数字不会在 setTimeout 循环中更新
- vue.js - Vuejs反应性属性插值不起作用