PDA

View Full Version : [javascript]Metodo bloccante


MEMon
31-12-2006, 09:22
C'è un modo per creare in javascript un metodo bloccante?

Vi espongo il mio problema:

var result;
var fnc;

function call(){
setTimeout("main()",randomNumber(2000));
}

function main(){
if(fnc!=null){
result=ottieniValore();
fnc();
}
fnc=null;
}

function start(){
fnc=function(){
alert(result);
end();
}
call();
}

function end(){
fnc=function(){
alert(result);
}
call();
}


In pratica ho una funzione non bloccante(call) che chiama un'altra funzione(main) dove viene eseguito del codice che salva il risultato in una variabile(result).
Questo dato mi servirebbe subito dopo la chiamata di call, ma siccome il metodo non è bloccante se lo usassi il contenuto di result non sarebbe quello che mi interessa.
Allora mi è venuta in mente l'idea di eseguire una funzione dove io metto ciò che vorrei fare con la variabile(result),in questo esempio la stampo e basta.
Il problema sorge quando creo una cascata di sta roba, ad esempio nella funzione(start) definisco la funzione(fnc) la quale, quando sarà in esecuzione ridefinisce se stessa con la funzione(end)...
E' un po' contorta come cosa, comunque quando è in cascata crea risultati non previsti.

In che modo abbastanza legante posso risolvere questo problemuccio?

In pratica quello che vorrei fare sarebbe una cosa del genere

var v=call();
alert(v);

Ma che non posso fare in quanto non posso passare la variabile(result) dalla funzione(main) alla funzione(call)

MEMon
31-12-2006, 09:50
mmm nn capisco...ho provato a fare un log di ciò che succede e tutto sembra al posto giusto... :confused:

MEMon
31-12-2006, 10:02
Penso di aver capito il problema, nella funzione main() viene eseguito fnc=null; mentra prima che end() venga eseguita, in questo modo viene distrutta ed end() non viene eseguita...

comunque rimane valida la richiesta di un suggerimento per una soluzione più elegante.