我正在尝试编写一个交互式界面,为此我在类中使用 readline 和 process.stdin 监听关键输入。 我现在的代码是
Console.on('input', (input) => {
console.log(input); // Return a key Input
process.exit(0)
})
我想要做的是在等待中异常地收听该事件。 所以我可以通过等待下一个用户输入来现场定义变量。 示例:
var input = await event(Console, 'input');
console.log(input);
/*
event on this case would be a custom functions suggested since i don't know how
i could do that properly . . .
*/
有办法做到这一点吗?如果我的问题不是,请告诉我
最佳答案
假设您有一个 off
与您的 on
方法配合使用,是的,event
可能如下所示:
function event(source, eventName) {
return new Promise((resolve) => {
const handler = (value) => {
resolve(value);
source.off(eventName, handler);
};
source.on(eventName, handler);
});
}
这会创建一个 promise 并订阅该事件。下次事件发生时,处理程序会使用它收到的任何值(该部分是可选的)履行 promise 并取消订阅该事件。
关于javascript - 等待事件中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74085675/