【发布时间】:2018-06-09 19:42:54
【问题描述】:
作为练习,我正在开发一个涉及一系列问题的 Javascript 游戏。我只是在 Node 中运行它,现在输出到控制台。我使用prompt 包(https://www.npmjs.com/package/prompt)处理用户输入。
一切正常,除了我还需要设置回答问题所需的时间长度,如果用户超过该时间,则继续下一个问题。然而,那时我正处于prompt 等待响应的中间,当我继续前进时,我开始得到奇怪的副作用,比如下一轮输入的输入加倍(然后在下一次超时时加倍) -- 即在控制台上输入s 会产生ss。
这个包是否有取消等待输入的提示?我浏览了文档并没有看到方法。如果没有,您是否知道可能提供此功能的软件包 - 我查看了但目前还没有找到。
我不知道代码是否有帮助,因为问题似乎出在包本身,但这是我正在做的:
要求用户输入:
this.getUserName = function (callback) {
var schema = {
properties: {
name: {
description: "Tu nombre por favor:",
pattern: /^[áÁóÓíÍéÉñÑa-zA-Z\s\-]+$/,
message: 'Solo letras, por favor',
required: true
}
}
};
prompt.get(schema, callback);
};
当我调用它时,我使用 setTimeout 设置了一个计时器
this.timer = setTimeout(this.timedOut.bind(this), this.ROUND_TIME);
this.prompter.getUserResponse(this.checkAnswer.bind(this));
当计时器超时时,我只是继续执行另一段代码,对提示(仍在等待)什么都不做,因为我不知道如何“取消”它......
【问题讨论】:
标签: javascript node.js prompt