Implémentation d'ActionScript 3 AsyncToken
-
20-08-2019 - |
Question
Recherche d'un exemple ou de liens dans la documentation sur la manière d'implémenter une méthode renvoyant AsyncToken.
Notez qu'il ne s'agit pas d'utiliser / de consommer une méthode renvoyant AsyncToken! Je souhaite écrire de telles méthodes moi-même.
La solution
Implémenter une méthode qui retourne un AsyncToken est simple:
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;
}
Notez que vous ne pouvez pas réellement utiliser les méthodes applyResult
et applyFault
, car elles transmettent un Event
aux répondeurs, sauf le résultat ou l'objet d'erreur.
Autres conseils
La classe TestUtil de la structure Swiz propose des méthodes vraiment amusantes pour se moquer du comportement AsyncToken:
Brian Kotek a publié un article de blog très informatif sur la façon de l'utiliser pour simuler des appels de serveur à l'aide de faux délégués: