You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js readline模块运行无响应问题求助(Windows环境)

Node.js readline模块无响应问题修复

你的代码存在几个关键问题,导致执行后无响应或报错:

  • 语法错误导致Promise无法resolve:question1函数中,rl.question的调用格式错误,把逗号放在了括号外面,使得回调函数没有被正确绑定到question方法上,Promise永远不会触发resolve,程序因此卡住。
  • 未定义变量引用:question2函数里的console.log(A temperatura em fahrenheit é ${fah}!);语句引用了question1中的局部变量fah,该变量在question2中未定义,执行到这里会抛出错误。
  • 类型不匹配导致switch逻辑失效:rl.question返回的输入是字符串类型,但switch的case使用了数字常量,无法正确匹配用户输入的内容,所有输入都会走到default分支。

以下是修正后的完整代码:

const readline = require('readline');

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

const question1 = () => {
    return new Promise((resolve, reject) => {
        rl.question('Qual a temperatura hoje: ', (cel) => {
            const fah = cel * 1.8 + 32;
            console.log(`A temperatura em fahrenheit é ${fah}!`);
            resolve();
        });
    })
}

const question2 = () => {
    return new Promise((resolve, reject) => {
        rl.question('Qual é o dia da semana em número?: ', (dia) => {
            switch (dia) {
                case '1':
                    console.log("Domingo!");
                    break;
                case '2':
                    console.log("Segunda!");
                    break;
                case '3':
                    console.log("Terça");
                    break;
                case '4':
                    console.log("Quarta");
                    break;
                case '5':
                    console.log("Quinta");
                    break;
                case '6':
                    console.log("Sexta!");
                    break;
                case '7':
                    console.log("Sabado");
                    break;
                default:
                    console.log("Dia inválido!");
                    break;
            }
            resolve();
        });
    })
}

const main = async () => {
    await question1()
    await question2()
    // await question3()
    // await question4()
    // await question5()
    // await question6()
    // await question7()
    // await question8()
    rl.close()
}

main()

内容的提问来源于stack exchange,提问作者Mário Henrique

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 18:12:47