queuemonkey
Version:
Management asynchronous methods , with flow control , parallel and series in a structure
87 lines (76 loc) • 2.21 kB
JavaScript
/*
exemplo 3 :
mostrando como usar funcao paralelas e sua funcao de complete
Obs.: para usar as funcoes no f.go , as funcoes prescisao estar nomeadas
*/
var fila = require("queuemonkey");
//contexto de acordo com a sua necessidade
var contexto ={
query:null
};
var f = new fila(contexto);
//alteracao de fluxo
f.go([funcUno,{paralelo:[paraleloUno, paraleloDos], complete:completo} ,funcDos, funcTres]);
function paraleloUno(complete){
var self = this;
//setTimeout, para simular eventos assincronos
setTimeout(function(){
self.query.paraleloUno="OK";
console.log("function paraleloUno");
console.log(self.query);
//quando finalizar a funcao chame o complete
//no complete nao temos controle do fluxo
complete();
},2000);
}
function paraleloDos(complete){
var self = this;
setTimeout(function(){
self.query.paraleloDos="OK";
console.log("function paraleloDos");
console.log(self.query);
//quando finalizar a funcao chame o complete
//no complete nao temos controle do fluxo
complete();
},200);
}
function completo(next){
next();
}
function funcUno(next){
//self igual ao this do new fila();
var self = this;
//setTimeout, para simular eventos assincronos
setTimeout(function(){
self.query={"funcUno":"OK"};
console.log("function Uno");
console.log(self.query);
//quando finalizar a funcao chame o next
//alterado do proximo, sem passar pela funcaoDos
next();
},400);
}
function funcDos(next){
//self igual ao this do new fila();
var self = this;
//setTimeout, para simular eventos assincronos
setTimeout(function(){
self.query.funcDos="OK";
console.log("function Dos");
console.log(self.query);
//quando finalizar a funcao chame o next
next();
},400);
}
function funcTres(next){
//self igual ao this do new fila();
var self = this;
//setTimeout, para simular eventos assincronos
setTimeout(function(){
self.query.funcTres="OK";
console.log("function Tres");
console.log(self.query);
//quando finalizar a funcao chame o next
next();
},400);
}