【问题标题】:Commander.js : script not waiting for user inputCommander.js:脚本不等待用户输入
【发布时间】:2012-07-21 21:01:14
【问题描述】:

我刚刚开始使用 node.js 和 command.js,所以这可能是一个愚蠢的问题...

所以我正在尝试制作一个命令行工具,我需要在其中向用户询问一些信息。我正在尝试使用commander.js,因为它看起来很简单。 问题是当我运行脚本时,它不会等待用户输入答案并执行所有脚本。 我怎样才能做到这一点?

这是我组织代码的方式:

#!/usr/bin/env node

var program = require('commander');

program
    .version('0.0.1')
    .option('-c, --create', 'Create new stuff')
    .parse(process.argv);

if(program.create){
    console.log('Creating new stuff');

    program.prompt('Name of the stuff: ', function(name){
        var stuffName = name;
    });

    program.prompt('Description of the stuff: ', function(description){
        var stuffDescription = description;
    });
} 

谢谢

【问题讨论】:

    标签: javascript node.js command-line-tool


    【解决方案1】:

    您必须将第二个提示放在第一个提示的回调中。

    program.prompt('Name of the stuff: ', function(name){
        var stuffName = name;
        program.prompt('Description of the stuff: ', function(description){
            var stuffDescription = description;
        });
    
    });
    

    如果您不这样做,那么两个提示都会立即打印出来; API 是异步的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多