Задача - нужно произвести последовательное обращение к одному или нескольким серверам, при каждом новом вызове использовать данные полученные от предыдущего.
Сейчас я юзаю калбеки вот так

Код AS3:
function step1( onSuccess:Function,onFailed:Function):void{
...
if (isOk){
onSuccess(someData1);
}else {
onFailed();
}
}
function step2( onSuccess:Function,onFailed:Function):void{
...
if (isOk){
onSuccess(someData2);
}else {
onFailed();
}
}
function step3( onSuccess:Function,onFailed:Function):void{
...
if (isOk){
onSuccess(someData3);
}else {
onFailed();
}
}
//--------
step1(
function(someData1:SomeType1):void{
// ok step1
...
step2(
function(someData2:SomeType2):void{
// ok step2
...
step3(
function(someData3:SomeType3):void{
// ok step3
...
/// и пошло дальше
}
,
function():void{
// error step3
}
);
}
,
function():void{
// error step2
}
);
}
,
function():void{
// error step1
}
);
}
Что не нравится: в основном то что явно не понятно из описания функций step1,2,3 какие параметры и сколько будет принимать onSuccess.
Если делать это через события то нагромождение кода будет еще больше, а однозначности все равно не будет, так как не известно однозначно на какое событие надо подписываться.
Известны ли кому-то более однозначные решения этой задачи? Или хотя бы более элегантные ? Тоесть чтобы можно было написать это все не читая комментарии к step1,2,3 и не разбирая их код.
Спасибо