首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有Rx接口的Yeoman Prompts

具有Rx接口的Yeoman Prompts
EN

Stack Overflow用户
提问于 2015-05-25 18:41:56
回答 1查看 496关注 0票数 1

我正在尝试编写一个Yeoman生成器,我真的不喜欢编写提示的文档界面。反应界面似乎更容易编写分支和循环接口。然而,当我这样写我的作品时:

代码语言:javascript
复制
  prompting: function () {
    var prompts = [{ type: 'input',
        name: 'howdy',
        message:'howdy'
      }]; 
    prompts = Rx.Observable.from(prompts);
    this.prompt(prompts, function(answers) { this.log(answers); }.bind(this));

  },  

我知道这个错误:

代码语言:javascript
复制
events.js:85
      throw er; // Unhandled 'error' event
            ^
Error: You must provide a `message` parameter
    at Prompt.throwParamError (/Users/user/.nvm/versions/node/v0.12.0/lib/node_modules/yo/node_modules/inquirer/lib/prompts/base.js:88:9)
    at Prompt (/Users/user/.nvm/versions/node/v0.12.0/lib/node_modules/yo/node_modules/inquirer/lib/prompts/base.js:44:10)
    at new Prompt (/Users/user/.nvm/versions/node/v0.12.0/lib/node_modules/yo/node_modules/inquirer/lib/prompts/input.js:25:15)
    at PromptUI.fetchAnswer (/Users/user/.nvm/versions/node/v0.12.0/lib/node_modules/yo/node_modules/inquirer/lib/ui/prompt.js:92:16)
    at MapObserver.selector (/Users/user/.nvm/versions/node/v0.12.0/lib/node_modules/yo/node_modules/inquirer/node_modules/rx/dist/rx.js:4215:20)
    at MapObserver.tryCatcher (/Users/user/.nvm/versions/node/v0.12.0/lib/node_modules/yo/node_modules/inquirer/node_modules/rx/dist/rx.js:568:29)
    at MapObserver.onNext (/Users/user/.nvm/versions/node/v0.12.0/lib/node_modules/yo/node_modules/inquirer/node_modules/rx/dist/rx.js:4423:42)
    at MapObserver.tryCatcher (/Users/user/.nvm/versions/node/v0.12.0/lib/node_modules/yo/node_modules/inquirer/node_modules/rx/dist/rx.js:568:29)
    at AutoDetachObserverPrototype.next (/Users/user/.nvm/versions/node/v0.12.0/lib/node_modules/yo/node_modules/inquirer/node_modules/rx/dist/rx.js:4856:51)
    at AutoDetachObserver.Rx.internals.AbstractObserver.AbstractObserver.onNext (/Users/user/.nvm/versions/node/v0.12.0/lib/node_modules/yo/node_modules/inquirer/node_modules/rx/dist/rx.js:1856:35)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-25 19:13:28

我没有通过this.prompt()使用生成器在this.prompt()中构建的实例,而是安装了Inquirer并遵循了它们的示例。它工作得很好,只是重复了第一个提示符。

代码语言:javascript
复制
  prompting: function () {
    var done = this.async();

    var log = function(answers) { this.log(answers); }.bind(this);
    var complete = function() {
      this.log('complete');
      done();
    }.bind(this);

    var prompts = Rx.Observable.create(function(obs) {
      this.log(obs);
      obs.onNext({ type: 'input',
        name: 'howdy',
        message:'howdy'
      }); 
      obs.onNext({ type: 'input',
        name: 'okee',
        message:'okee'
      }); 
      obs.onCompleted();
    }.bind(this));
    inquirer.prompt(prompts).process.subscribe(log, log, complete);
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30444288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档