我对async javascript没有太多经验。我怎样才能调用命令,而不硬编码命令的数量或使用eval?嵌套回调
var commands = [
// command 1: result: 0, stdout: ""
function (stdin, callback) {
callback(0, "");
},
// command 2: result: 1, stdout: ""
function (stdin, callback) {
callback(1, "");
},
// command 3: result: 0, stdout: ""
function (stdin, callback) {
callback(0, "");
},
// ...
];
var stdin = "foo";
var end = function (result, stdout) {
console.log(result);
console.log(stdout);
};
commands[0](stdin, function (result, stdout) {
commands[1](stdout, function (result, stdout) {
commands[2](stdout, end);
});
});
只是因为它的回调,这并不意味着它是异步的,所以我有一个很难搞清楚为什么你真的需要这个。你应该澄清为什么你需要这个,我试图投票结束,即使我最初投了票...这是纯粹的假设? –
它看起来像你想要某种排队行为。 – zzzzBov
顺便说一下,代码没有做任何我可以理解的事情...... http://jsfiddle.net/eJS3m/ –