Skip to content

Instantly share code, notes, and snippets.

@stetsd
Created August 21, 2018 10:49
Show Gist options
  • Save stetsd/4965737cc67c5f8efac6083a956ae238 to your computer and use it in GitHub Desktop.
Save stetsd/4965737cc67c5f8efac6083a956ae238 to your computer and use it in GitHub Desktop.
async series
const exec = require('child_process').exec;
var cmds = [
'mkdir supermega',
'echo supermega created',
'cd supermega && mkdir wildfowl-01 wildfowl-02 wildfowl-03'];
(async function(){
let heap = [];
cmds.forEach((item, i) => {
if(item === 'mkdir supermega'){
heap.push(async cb => {
return await setTimeout(async ()=>{
await exec(item, (err, out) => {
if(err){
console.error(new Error(err));
return;
}
out && console.log(out);
cb();
});
}, 1500);
})
}else{
heap.push(async cb => {
return await exec(item, (err, out) => {
if(err){
console.error(new Error(err));
return;
}
out && console.log(out);
cb();
});
});
}
});
async function run(commands){
commands[0] && await commands[0](run.bind(null, commands.slice(1)));
}
run(heap);
})();
// VARIK 2
async function run(commands){
commands[0] && await exec(commands[0], async (err, out) => {
if(err){
console.error(new Error(err));
return;
}
out && console.log(out);
await run(commands.slice(1));
});
}
run(cmds);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment