我尝试使用node.js包的readline来获取命令行上的用户输入,并且我想通过promises来传输输入。但是,输入从来没有通过then链。我认为问题可能来自于这样一个事实,即在回调方法中实现了promises,但是我不知道如何解决这个问题。
此问题的示例如下所示:
import rlp = require('readline');
const rl = rlp.createInterface({
input: process.stdin,
output: process.stdout
});
let prom = new Promise(resolve => {
rl.question('Enter input: ', input => rl.close() && resolve(input));
});
prom
.then(result => { console.log(result); return prom; })
.then(result => { console.log(result); return prom; })
.then(result => console.log(result));
如果在node.js中运行,这个问题只会出现一次,输入完后程序就停止了。我希望它等到第一个输入完成后,它会打印这个输入并询问下一个输入。
提前感谢!
5条答案
按热度按时间nnsrf1az1#
一旦你的承诺得到了解决,就没有必要再等待了。我还把
rl.close()
调用移到了最后,因为它只需要被调用一次。jmo0nnb32#
这是这个问题的答案,我不值得称赞。
qyuhtwio3#
cvxl0en24#
第一个字符:
https://nodejs.org/api/readline.html#readline
zujrkrfu5#
节点提示.mjs