问题:可以使用哪些技术来实现异步返回值的函数?
所需效果的无效代码(在 ActionScript 中...借口 Prettify):
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();
}
}
背景:我目前正在使用 Flex,但出现了一个持续存在的问题:需要异步函数甚至回调将值返回给访问器函数或使用来自另一个函数的返回值的任何其他函数。
在 Flex 中,这似乎无法实现。我一直在研究延续、互斥体、并发编程,试图在 ActionScript 中找到与“yield”等效的东西,以查看是否可以使用协程,但绝对无济于事。