nodejs中,如何等待rl.question结束后再运行它后面的代码
时间: 2024-02-25 22:52:24 浏览: 210
在Node.js中,可以使用`rl.question`方法来获取用户的输入。该方法是异步的,因此需要使用回调函数来处理用户输入。如果想要等待`rl.question`方法结束后再运行它后面的代码,可以使用`async/await`或者Promise实现。
使用async/await的代码示例如下:
```javascript
const readline = require('readline');
async function getInput() {
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
const answer = await new Promise((resolve) => {
rl.question('请输入内容:', (answer) => {
resolve(answer);
});
});
console.log('用户输入:', answer);
rl.close();
// 这里可以继续执行后面的代码
console.log('后面的代码');
}
getInput();
```
使用Promise的代码示例如下:
```javascript
const readline = require('readline');
function getInput() {
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
return new Promise((resolve) => {
rl.question('请输入内容:', (answer) => {
resolve(answer);
rl.close();
});
});
}
getInput().then((answer) => {
console.log('用户输入:', answer);
// 这里可以继续执行后面的代码
console.log('后面的代码');
});
```
以上两种方法都可以实现等待`rl.question`方法结束后再运行它后面的代码。
阅读全文