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

});

私がやりたいのは、最初の入力、つまりテストケースに基づいています。2つの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);

標準入力用の同期IOAPIはありません。ただし、入力全体を文字列に読み込んで(EOFが表示されるまで)、文字列を同期的に処理することはできます。

于 2013-01-14T09:44:30.250 に答える