有没有办法覆盖Vorpal模式退出命令?

时间:2015-12-01 02:27:09

标签: javascript vorpal.js

我正在使用Vorpal mode来允许用户输入文字,我稍后会解析(我找不到使用常规command的方法,因为我无法开帐户对于所有文本提前)。当用户键入exit时,他将退出该模式。我希望它是一个不同的字符串 - 或者可能是一个额外的字符串(比如quitend)。

有没有办法可以覆盖exit命令,或者失败,在用户提供某个字符串时自己触发?

示例代码:
这是一个exercise that implements a Reverse Polish Notation计算器。如果你查看handleInput函数(第47行),你会看到我必须手动处理q字符串并终止进程 - 我想要它做的就是模式的行为exit命令(在第74行附近)。

1 个答案:

答案 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方法,并且它可以通过接受可变参数并加入它们来表现为模式。

这有意义吗?