0

我从 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);
        });
    });

});

我想做的是基于第一个输入,即测试用例。我想围绕两个 ask(function(workers)) 和 ask(function(salary)) 运行 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,因此即使我在第一个 ask(function(testcase)) 之后放置了一个 for 循环。这没用。

谁能指导我如何以同步方式接受输入。

4

1 回答 1

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),然后以同步方式处理该字符串。

于 2013-01-14T09:44:30.250 回答