javascript - 指挥官.js : script not waiting for user input

标签 javascript node.js command-line-tool

我刚开始使用 node.js 和 commander.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;
    });
} 

谢谢

最佳答案

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

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

});

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

关于javascript - 指挥官.js : script not waiting for user input,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11595802/

相关文章:

javascript - 使用 Jquery 更改 css 样式适用于 id,而不适用于类

javascript - 在 Chrome 和 Mozilla 中显示选择上传的图像

javascript - 如何在express框架中创建模板标签(django)

node.js - 是否可以在 go 中编写 node.js 插件?

node.js - NPM 脚本 - 配置变量和命令替换在 package.json 中不起作用

java - 如何使用 JUnit 在 Java 中测试简单的命令行应用程序

typescript - 创建既是命令行实用程序又是导出方法的 npm TypeScript 模块 - 这可能吗?

JavaScript 插件帮助 - ContentFlow

javascript - Codeigniter PHP 自动完成

xcode - OSX 10.9 上的命令行工具 : Installed, 但无法显示?