Interface 类
- rl.write(data[, key])
- rl.setPrompt(prompt)
- rl.prompt([preserveCursor])
- rl.question(query, callback)
- rl.pause()
- rl.resume()
- rl.close()
表示具有输入和输出流的 readline 的接口类。
rl.write(data[, key])
向 output
流写入 data
,除非在调用 createInterface
时,output
被设置为 null
或 undefined
。key
是一个对象字面量表示的键序列;如果终端是 TTY,则可用。
这也会恢复 input
流,如果它已被暂停。
例子:
rl.write('Delete me!');
// Simulate ctrl+u to delete the line written previously
rl.write(null, {ctrl: true, name: 'u'});
rl.setPrompt(prompt)
设置提示,例如,当你在命令行中运行 node
时,你会看到 >
,这就是 Node.js 的提示。
rl.prompt([preserveCursor])
为用户的输入准备 readline,将当前的 setPrompt
选项放在一个新行上,给用户一个新的写点。设置 preserveCursor
为 true
,防止将光标位置重置为 0
。
这也会恢复用于 createInterface
的 input
流,如果它已被暂停。
当调用 createInterface
时,如果 output
被设置为 null
或 undefined
,该提示不会写入。
rl.question(query, callback)
在提示符前面加上 query
并带着用户响应调用 callback
。向用户显示查询,然后在用户输入后,带着用户响应调用 callback
。
这也会恢复用于 createInterface
的 input
流,如果它已被暂停。
当调用 createInterface
时,如果 output
被设置为 null
或 undefined
,将不会显示。
用法示例:
rl.question('What is your favorite food?', (answer) => {
console.log(`Oh, so your favorite food is ${answer}`);
});
rl.pause()
暂停 readline 的 input
流,如果需要,可以在之后恢复。
请注意,这不会立即暂停事件流。在调用 pause
之后,可能会发出几个事件,包括 line
。
rl.resume()
恢复 readline 的 input
流。
rl.close()
关闭 Interface
实例,放弃控制 input
和 output
流。也同样会发出 'close'
事件。