readline请求输入时遇到问题(可能是由于console.log)

时间:2019-06-04 12:40:21

标签: javascript node.js

我整理了一个脚本,用于通过readline获取用户输入。失败的逻辑的简化版本如下:

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

function ask() {
    return new Promise((resolve, reject) => {
        rl.question('Enter input:', (input) => resolve(input) );
    });
}

async function logic() {
    let result = await ask();
    console.log(result); // this console.log seems fine
    rl.close()
    return result;
}

let a = logic();
console.log(a); // this console.log causes the issue

运行上述命令时,输出为:

Enter input: Promise { <pending> }

调用console.log()之后,罪魁祸首似乎是logic()。如果我将其删除,则会按预期请求数据并继续操作。但是,在读取行之后清除代码中的所有日志消息将不适用于此脚本。我该怎么做才能解决此问题?关闭输入后,我需要做些什么来处理process.stdout吗?

0 个答案:

没有答案