gpt4 book ai didi

javascript - 尝试使用node.js中的readline从控制台读取输入,但应用程序不等待输入

转载 作者:行者123 更新时间:2023-12-02 23:36:13 24 4
gpt4 key购买 nike

我正在尝试从控制台读取一个单词以在类似刽子手的应用程序中使用。到目前为止,出现了“输入您的单词”的提示,但应用程序不会等待输入继续。

我已将 VS code 设置为使用外部控制台,尝试使用不同的方法而不使用 readline,并观看了一些视频来尝试使其正常工作。

var readline = require('readline');

var rl = readline.createInterface(process.stdin, process.stdout);

function getWord(){

var word = "";

rl.question("Enter your word", function(answer){
word = answer
})

var wordArray = word.split('');

return wordArray;
}

console.log(getWord());

我希望它等待输入然后继续,但事实并非如此。

最佳答案

rl.question 执行异步操作,因此当您尝试 时,无法确定 word 等于 answer .split。但是,您确定用户已在接收 answer 作为参数的回调中输入了一些内容。

换句话说,您必须更改代码来处理这种情况,您可以考虑使用 Promise :

var readline = require('readline');

var rl = readline.createInterface(process.stdin, process.stdout);

const getWord = () => {
return new Promise(resolve => {
rl.question("Enter your word", function(answer) {
resolve(answer.split(''));
});
});
}

getWord().then(array => {
console.log(array);
process.exit(0);
});

关于javascript - 尝试使用node.js中的readline从控制台读取输入,但应用程序不等待输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56282880/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com