Have you all seen this "Promises" AS3 api?
https://github.com/CodeCatalyst/promise-as3/tree/develop

I just discovered it, but it looks pretty darn nice.

@Cosma, your initial "locking" code example reminds me of the new "await"
keyword in C#:
http://msdn.microsoft.com/en-us/library/hh156528(v=vs.110).aspx

This also reminds me of "Reactive Extensions", which was a library that
attempted to address some of the issues with asynchronous spaghetti. It was
originally a .NET project, but it's been ported to AS3. (AS3
Implementation: https://github.com/richardszalay/raix) It's been a while
since I looked at it, but I recall that reactive programming was an
interesting way of looking at asynchronous code. Although I remember it
making some things easier to read, the learning curve was steep (to my mind
anyway), and the end result didn't feel particularly readable. @Justin
mentioned the problem of having 3 separate calls that need to return before
the 4th call can be made, and that is one of the things that I recall
Reactive Extensions could solve specifically. In fact, Reactive Extensions
were specifically good at taking multiple asynchronous streams of results
and combining them in different ways.

I wrote a library to make it easier to write pseudo/cooperative "threads"
in AS3: https://github.com/Taytay/CoThreadAS3
It's good at splitting it up a task so that it runs like a background
thread that still reads linearly. (Granted, this will be obsolete once
worker threads get here). After reading about all of these asynchronous
concepts again though, it makes me want to revisit my library and express
some of the API in terms of Promises. I think it would simplify things a
great deal.

Cheers,

Taylor Brown




On Mon, Mar 26, 2012 at 1:11 PM, Cosma Colanicchia <cosma...@gmail.com>wrote:

> @Martin
>
> > A DSL for lazy operations has proven itself quite valuable as you can se
> > from the various tweening apis they may be a little wasteful but
> > ultimately result in more stable, flexible systems that are easier to
> read.
>
> In alternative to "real" synchronized methods, I agree that a powerful
> DSL for lazy operations would be really useful... this could also be
> more in line with the current async approach.
>
>
> Cosma
>

Reply via email to