Architecture 异步存取器

Architecture 异步存取器,architecture,asynchronous,functional-programming,Architecture,Asynchronous,Functional Programming,问题:什么技术可以用来实现异步返回值的函数 无效的预期效果代码(在ActionScript中…请原谅美化): 背景:我目前正在使用Flex,出现了一个经常出现的问题:需要异步函数,甚至回调,将值返回给访问器函数或使用其他函数返回值的任何其他函数 在Flex中,这似乎不可能实现。我一直在研究continuations、mutex、并发编程,试图在ActionScript中找到一个与“yield”等效的方法,看看是否可以使用协同路由,但毫无用处。您可以切换到continuation传递样式并使用s

问题:什么技术可以用来实现异步返回值的函数

无效的预期效果代码(在ActionScript中…请原谅美化):

背景:我目前正在使用Flex,出现了一个经常出现的问题:需要异步函数,甚至回调,将值返回给访问器函数或使用其他函数返回值的任何其他函数


在Flex中,这似乎不可能实现。我一直在研究continuations、mutex、并发编程,试图在ActionScript中找到一个与“yield”等效的方法,看看是否可以使用协同路由,但毫无用处。

您可以切换到continuation传递样式并使用
setTimeout

但是回调的返回值实际上从未在任何地方使用过,即使使用这种方法。如何做到这一点?
public function get item() : InventoryItem {
    return InventoryItem.find(this.id);
}

public class InventoryItem {
    public static function find(id : int) : InventoryItem {
        var statement:SQLStatement = statementCreator.create('FIND_BY_ID');
        statement.parameters['@id'] = id.toString();
        statement.addEventListener(SQLEvent.RESULT, 
            function (event : SQLEvent) : InventoryItem {
                // find returns from here
                return (event.target as SQLStatement).getResult().data[0] as InventoryItem;
            });
        statement.execute();
    }
}