Реализация ActionScript 3 AsyncToken - PullRequest
4 голосов
/ 27 июня 2009

Ищем пример или ссылки на документацию о том, как реализовать метод, возвращающий AsyncToken.

Обратите внимание, что речь идет не об использовании / использовании метода, возвращающего AsyncToken! Я хочу написать такие методы сам.

Ответы [ 2 ]

2 голосов
/ 21 октября 2009

Реализация метода, который возвращает 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, когда респондент, кроме объекта результата или ошибки.

0 голосов
/ 26 декабря 2009

В классе TestUtil платформы Swiz есть несколько действительно классных способов для имитации поведения AsyncToken:

http://code.google.com/p/swizframework/source/browse/trunk/src/main/flex/org/swizframework/util/TestUtil.as

Брайан Котек (Brian Kotek) имеет очень информативный пост в блоге о том, как его использовать для имитации вызовов на сервере с использованием фиктивных делегатов:

http://www.briankotek.com/blog/index.cfm/2009/3/16/Swiz-Part-5-Simulating-Server-Calls-with-a-mock-AsyncToken

...