Реализация ActionScript 3 AsyncToken
-
20-08-2019 - |
Вопрос
Ищу пример или ссылки на документацию о том, как реализовать метод, возвращающий AsyncToken.
Обратите внимание, что речь идет не об использовании / потреблении метода, возвращающего AsyncToken!Я хочу сам написать такие методы.
Решение
Реализовать метод, который возвращает AsyncToken, просто:
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;
}
Обратите внимание, что на самом деле вы не можете использовать applyResult
и applyFault
методы, потому что они передают респондентам Event
, когда ответчик, за исключением объекта result или fault.
Другие советы
В классе TestUtil от Swiz framework есть несколько действительно классных способов издевательства над поведением AsyncToken:
У Брайана Котека есть очень информативный пост в блоге о том, как использовать его для имитации вызовов сервера с использованием фиктивных делегатов: