javascript - Node.js - promisify readline

标签 javascript node.js promise

如标题所述,我想知道是否可以在 node.js 中为 readline 使用 promisify(https://nodejs.org/dist/latest-v8.x/docs/api/util.html#util_util_promisify_original)?我只能这样做:

let data = [];
const parse = () => {
    return new Promise((resolve, reject) => {

        const rl = readline.createInterface({
            input: fs.createReadStream(path)
        });

        rl.on('line', (line) => {
            data.push(line);
        });

        rl.on('close', () => {
            resolve(data);
        });
    });
};

最佳答案

这里有一个不使用 promisify 的简单方法:

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

function question(query) {
    return new Promise(resolve => {
        readline.question(query, resolve);
    });
}

async function main() {
    const name = await question('Whats your name? ');
    console.log(`hello ${name}!`);
    readline.close();
}

main();

关于javascript - Node.js - promisify readline,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46907761/

相关文章:

javascript - 如何返回文档准备好的函数?

javascript - Websocket 如何连接到集群内正确的子进程?

javascript - 在 Highcharts 中为列范围设置左/右边框半径

javascript - 使用 Javascript 检测阿拉伯语?

node.js - 无法在 Tailwind 上扩展间距

javascript - node.js 限制来自用户的请求数

javascript - 为 promise 编写循环的正确方法。

node.js - node-sass 安装不允许的操作

javascript - 从 Promise(then) 返回值

javascript - ES6 - 继续发出 promise ,直到它在没有递归的情况下解决