【问题标题】:Yeoman: Is it possible to create multistep prompts?Yeoman:是否可以创建多步提示?
【发布时间】:2016-09-25 19:41:59
【问题描述】:

是否可以在 yeoman generator-generator 中创建依赖于先前答案的提示?

示例:

languages supported?
  [ ] en
  [ ] it
  [ ] es
  [ ] de
  ...

然后询问是否选择了'en'

translation of "this thing" in en: ____

如果“它”被选中

translation of "this thing" in it: ____

等等?

谢谢!

【问题讨论】:

    标签: generator yeoman prompt yo


    【解决方案1】:

    Yeoman 只是 JavaScript。所以是的,完全可以使用答案从回调中启动新的提示会话。

    Inquirer.js 文档甚至有一个例子:https://github.com/SBoudrias/Inquirer.js/blob/master/examples/nested-call.js

    【讨论】:

    • 谢谢西蒙·布德里亚斯!我试过扭动这个脚本:gist.github.com/matteo-bombelli/… 但我的承诺有问题:第二个似乎是在“结束”调用之后执行的。我的脚本有什么问题?
    • 我建议您阅读 Promise 文档。特别是then 是如何工作的developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
    • 感谢您的回答。我正在看。
    • 这有点晚了,但是@MatteoBombelli,第二个在整个生成器运行后结束的原因是因为您将“外部”承诺作为返回值返回。 Simon 试图让你看到的是,如果你从 then 回调中返回一个 Promise,外部 Promise 将继承内部 Promise 的状态。因此,您需要在第 38 行添加一个 return 语句(随后需要移动您的 this.props 分配,因为它永远不会被调用。
    【解决方案2】:

    我找到了一个小(也许是 hacky)解决方案:

    https://gist.github.com/matteo-bombelli/f4c8bc17ec83a12cb0de058016aa1f8f#file-index-js-L51

    我没有将它嵌套在 Promise 中(这给我的 Promise 时间带来了问题),而是将它放入另一个任务中,该任务将在提示之后分组到 default group 中。

    但我不太喜欢这种解决方案。如果使用“then”并且promise 可以做会更喜欢那个。

    谢谢!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-09
      • 2015-03-17
      • 1970-01-01
      • 1970-01-01
      • 2014-05-05
      • 1970-01-01
      • 2017-01-27
      • 1970-01-01
      相关资源
      最近更新 更多