我正在使用Vorpal mode
来允许用户输入文字,我稍后会解析(我找不到使用常规command
的方法,因为我无法开帐户对于所有文本提前)。当用户键入exit
时,他将退出该模式。我希望它是一个不同的字符串 - 或者可能是一个额外的字符串(比如quit
或end
)。
有没有办法可以覆盖exit
命令,或者失败,在用户提供某个字符串时自己触发?
示例代码:
这是一个exercise that implements a Reverse Polish Notation计算器。如果你查看handleInput
函数(第47行),你会看到我必须手动处理q
字符串并终止进程 - 我想要它做的就是模式的行为exit
命令(在第74行附近)。
答案 0 :(得分:1)
目前无法实现此目的,但您可以file an issue on Github将其添加为增强功能,因为这是一个好主意。
然而,it looks like the catch
command可能更符合您的要求。这可以接受任意命令,而不是处于“模式”。
在查看代码时,看起来catch
可以解决问题。像这样:
vorpal
.catch('[input...]')
.action(function (args, cb) {
handleInput(args.input.join(' '), cb);
});
在上面的示例中,一旦应用程序启动,就好像您已经处于“模式”状态。任何与预定义命令(例如exit
)不匹配的命令都将调用catch方法,并且它可以通过接受可变参数并加入它们来表现为模式。
这有意义吗?