freddiefujiwara
freddiefujiwara

Reputation: 59059

is there any cool Deferred library in ActionScript?

JSDeffered is so cool: https://github.com/cho45/jsdeferred/blob/master/test-jsdeferred.js

we can write simplest async call chain .

next(function () { // this `next` is global function
    alert("1");
}).
next(function () { // this `next` is Deferred#next
    alert("2");
}).
next(function () {
    alert("3");
});

our code is so spagetti code like that new Execute1(nextFunction); ....

is there any cool Deferred library in ActionScript? or Which script are you using?

Upvotes: 1

Views: 1292

Answers (4)

darscan
darscan

Reputation: 963

I just came across this:

https://github.com/CodeCatalyst/promise-as3

I haven't tried it yet, but it looks.. promising. It's modelled on jQuery's Deferred, follows the CommonJS Promise/A spec (I assume), and has a decent looking set of unit tests.

Upvotes: 4

Cay
Cay

Reputation: 3794

I'm not sure this is what you're looking for, but there's quite a nice port of LINQ for AS3 here: https://bitbucket.org/briangenisio/actionlinq/wiki/Home

Upvotes: 1

Mark Knol
Mark Knol

Reputation: 10143

It is very simple to create this syntax yourself. Every function should return the instance of the class itself (return this).

Create an as3 class called Chainer

package  
{
    public class Chainer 
    {
        public static function create():Chainer
        {
            return new Chainer();
        }

        public function next(func:Function, ...rest):Chainer
        {
            func.call(this, rest); // call the function with params
            return this; // returns itself to enable chaing
        }
    }

}

Now use the class with your next-function. You could call it like this:

Chainer.create()
    .next(function():void { 
        trace("1") 
    } )
    .next(function():void { 
        trace("2") 
    } );

There could be problems if you want to extend the Chainer class, since you cannot change the return type:
OOP problem: Extending a class, override functions and jQuery-like syntax

I have used this type of code to create a little helper class:
http://blog.stroep.nl/2010/10/chain-tween/
http://blog.stroep.nl/2009/11/delayed-function-calling-chain/

BTW this tween library is based on jQuery like syntax too:
http://code.google.com/p/eaze-tween/

Upvotes: 3

Axelle Ziegler
Axelle Ziegler

Reputation: 2655

I think most tweening library will do exactly what you ask for. For instance TweenLite and TimelineLite (https://www.greensock.com/timelinelite/) should do the job perfectly.

Upvotes: 1

Related Questions