Nodejs 使用 Readline 如何避免嵌套回调?

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

rl.question('请输入文件所在路径:', (path) => {
  let file_path = path;
  rl.question('请输入新的文件名:', (name) => {
    let file_name = name;
    console.log(file_path);
    console.log(file_name);
    rl.close();
  });
});

有没有办法直接定义全局变量,然后用 readline 读入变量?

阅读 2k
1 个回答

你可以试试用util库的promisify, require('util').promisify 或者bluebirdpromisifyAll 方法,看看能不能把你question() 转成promise的,如果可以的话,你就可以使用Async/Await语法了,就能避免嵌套回调了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题