引言
在前端开发中,经常需要获取用户的输入,而 Node.js 提供了一种比较方便的方法——使用 readline 模块。但是 readline 模块返回的都是回调函数,不够方便。
-- -------------------- ---- ------- ----- -------- - -------------------- ----- -- - -------------------------- ------ -------------- ------- -------------- --- ----------------------- ------ -- - ----------------- - ------ ----------- ---
为了更加方便地使用 readline,可以使用 npm 包 promise-readline。
安装
使用 npm 安装:
npm install promise-readline
使用示例
promise-readline 和 readline 唯一不同的就是它封装了回调函数,改为了 Promise,使用也更加方便。下面展示了一个简单的使用示例。
-- -------------------- ---- ------- ----- - --------------- - - ---------------------------- ------ -- -- - ----- -- - ----------------- ------ -------------- ------- -------------- --- ----- ---- - ----- ------------------------ -------------------------- ----------- -----
输出:
请输入你的名字:alice 你好,alice
API
promise-readline
的 API 与 readline
类似,主要封装了 Interface
的回调函数为 Promise。
createInterface
promise-readline
的入口函数,返回一个 Interface
对象。
const { createInterface } = require('promise-readline'); const rl = createInterface(options);
与 readline
类似,options
支持以下属性:
input
:输入流output
:输出流
Interface 对象
Interface
对象是 promise-readline
封装过后的对象,包含以下方法。
rl.question(query[, options])
返回一个 Promise,该 Promise 将在输入完答案后被解决。
-- -------------------- ---- ------- ----- - --------------- - - ---------------------------- ----- -- - ----------------- ------ -------------- ------- -------------- --- ---------------------------------- -- - -------------------------- ----------- ---
支持以下参数:
query
: 一个问题,被显示给用户。 最后一个字符应该是 ?? 以提示用户提供输入。 它也可以是一个包含两个属性(key
等)的对象,以便在呈现问题时配置读取行为。options
:hideEchoBack
:输入模拟。 如果设置为true
,输入将显示为星号(如密码)。 默认为false
。
rl.pause()
暂停输入流。
rl.resume()
恢复输入流。
rl.clearLine()
清除当前行。
rl.clearScreenDown()
清除当前行到屏幕底部
rl.close()
关闭 Interface 实例。
结语
本文介绍了 npm 包 promise-readline
的使用和 API,相比较原生的 readline 模块,promise-readline
更加方便和易用,可以极大地提高前端开发效率。我相信通过本文的介绍,读者们都可以掌握 promise-readline
的使用方法。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60057c5281e8991b448ebd40