我开始使用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))。这是行不通的。
任何人都可以指导我如何以同步方式接受输入。
答案 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),然后以同步方式处理字符串。