Я работаю - как упражнение - над игрой на 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));
когда таймер истекает, я просто перехожу к другому коду, ничего не делая с приглашением (которое все еще ждет), так как я не знаю, как «отменить»это ...