Yeoman生成器:重复提示

4
我正在创建一个自定义的 Yeoman 生成器,我需要根据用户的响应创建一个数组: 如何重复一个问题并将答案推送到数组中?
例如: 添加一个值?是/否 如果是: 值=?
添加一个值?是/否 ...
目前,我有这段代码:
    MyGenerator.prototype.askFor = function askFor() {
  var cb = this.async();

  console.log(this.yeoman);

  var prompts = [

{
    type: 'confirm',
    name: 'addvalue',
    message: 'Add value ?',
    default: true
  },
{
    name: 'myarray',
    message: 'Value =',
}
];

  this.prompt(prompts, function (props) {
    this.addvalue = props.addvalue;

    cb();
  }.bind(this));
};

你真的需要确认吗? - Eddie Monge Jr
1个回答

1

只需使用递归函数。

示例(由于this上下文而无法正常工作):

function askSomething() {
    this.prompt({ /* some prompts */ }, function (answers) {
        // call the function back if needed
        askSomething();
    });
}

我还有其他问题,不想重复所有的问题。 - prestarocket
只需在生成器内使用多个提示函数递归处理提示的一部分即可。这是基本编程技巧。您可以查看yo命令行工具存储库,它正在对提示进行递归处理。 - Simon Boudrias
当你尝试编写自动化测试时,很遗憾这会失败。 - Petrogad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接