我正在使用Vorpal mode来允许用户键入文本,稍后我会解析这些文本(由于无法预先解释所有文本,所以我无法找到一种使用常规command的方法)。当用户输入exit时,他就退出了模式。我希望这是一个不同的字符串,或者可能是一个额外的字符串(比如quit或end)。
是否有一种方法可以重写exit命令,或者在用户提供某个字符串时自己触发它?
样本代码:
这是一个实现反向波兰表示法的练习计算器。如果您查看handleInput函数(第47行),您将看到我必须手动处理q字符串并终止进程--我希望它所做的就是像模式的exit命令那样(在第74行附近)。
发布于 2015-12-01 17:13:06
目前还没有这样做的方法,但是您可以通过将一个问题提交给Github添加它作为增强,因为这是一个好主意。
然而,命令可能是您要寻找的更多内容。它接受任意命令,而不处于“模式”。
更新
在查看您的代码时,catch看起来就能做到这一点。就像这样:
vorpal
.catch('[input...]')
.action(function (args, cb) {
handleInput(args.input.join(' '), cb);
});在上面的示例中,当应用程序启动时,就会感觉您已经处于“模式”中。任何不匹配预定义命令(如exit)的命令都将调用catch方法,并且它可以通过接受各种参数并加入它们来表现为一种模式。
这有意义吗?
https://stackoverflow.com/questions/34011584
复制相似问题