接受nodejs中的输入

时间:2013-01-14 09:14:29

标签: node.js

我开始使用nodeJS。这是我的代码

function ask(callback) {
    var stdin = process.stdin, stdout = process.stdout;
    stdin.resume();
    stdin.once('data', function(data) {
        data = data.toString().trim();
        callback(data);
    });
}

ask(function(testcase) {
    ask(function(workers) {
        ask(function(salary) {
            console.log(salary);
        });
    });

});

我想做的是基于第一个输入i,e testcase。我想围绕两个问题(函数(工人))运行一个for循环并询问(函数(工资))

eg input
2  -- two testcases
2 - num of workers
1 2 - salary / first testcase over
3 -  num of workers
1 2 3 - salary / second - testcase over 

现在开始处理输入。我知道nodeJS是aysnchronus,因此即使我在第一次询问后放置一个for循环(函数(testcase))。这是行不通的。

任何人都可以指导我如何以同步方式接受输入。

1 个答案:

答案 0 :(得分:0)

我会这样做:

function test(testcase) {
    ask(function(workers) {
      ask(function(salary) {
        console.log(salary);

        // Do whatever you want with the data

        // Then:
        ask(test);
      });
    });
}

ask(test);

标准输入没有同步IO API。但是,您可以将整个输入读入字符串(直到出现EOF),然后以同步方式处理字符串。