Recursion 在Yeoman中同时使用递归和非递归提示

Recursion 在Yeoman中同时使用递归和非递归提示,recursion,yeoman,Recursion,Yeoman,我正在构建一个Yeoman生成器,并为用户提供了一些提示,我使用了如下提示队列: var prompts = [{ name: 'name', message: 'What is the name of this module?' },{ name: 'desc', message: 'Describe your module:' }]; this.prompt(prompts, function (props) { this.name = props.name; th

我正在构建一个Yeoman生成器,并为用户提供了一些提示,我使用了如下提示队列:

var prompts = [{
  name: 'name',
  message: 'What is the name of this module?'
},{
  name: 'desc',
  message: 'Describe your module:'
}];

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

  done();
}.bind(this));

但是我如何才能在这个提示中添加递归问题呢?我想向用户询问依赖项,让他们填写一个名称,按enter键,再填写另一个名称,直到他们按enter键并给出一个空白答案。

经过一些尝试,我找到了一个有效的解决方案:

var dependencies = [];
var dependency = function(self) {
  var dep_quest = {
    name: "dependency",
    message: "Need any dependencies? (Leave blank to continue)"
  };
  self.prompt([dep_quest], function(props)
    if (props.dependency !== '') {
      dependencies.push(props.dependency);
      dependency(self);
    }
    else {
      self.dependencies = dependencies;
      done();
    }
  });
}

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

  dependency(self);
}.bind(this));
在常规问题之后,我调用依赖函数,该函数一次又一次地问一个问题,直到给出一个空白答案。然后调用done函数