Implementazione AsyncToken di ActionScript 3
-
20-08-2019 - |
Domanda
Cerchi un esempio o collegamenti alla documentazione su come implementare un metodo che restituisca AsyncToken.
Nota che non si tratta di utilizzare / consumare un metodo che restituisce AsyncToken! Vorrei scrivere questi metodi da solo.
Soluzione
L'implementazione di un metodo che restituisce un AsyncToken è semplice:
function doStuffLater():AsyncToken {
var token:AsyncToken = new AsyncToken(null);
// This method will randomly call the responder's 'result' or 'fault'
// handler.
function doStuff() {
var response:String = (Math.random() > 0.5)? "result" : "fault";
for each (responder:IResponder in (token.responders || [])) {
// rememeber: this is equivilent to
// responder.result(...) or responder.fault(...)
responder[response]("Got a result!");
}
}
setTimeout(doStuff, 1000);
return token;
}
Nota che in realtà non puoi usare i metodi applyResult
e applyFault
, perché passano i rispondenti un Event
, quando il rispondente tranne l'oggetto risultato o errore.
Altri suggerimenti
La classe TestUtil di Swiz framework ha alcuni modi davvero interessanti per deridere il comportamento di AsyncToken:
Brian Kotek ha un post sul blog molto istruttivo su come usarlo per simulare le chiamate al server usando i finti delegati: