2012-10-10 105 views
0

問題:可以使用哪些技術來實現異步返回值的函數?異步訪問器

的預期效果無效代碼(在ActionScript ...藉口美化):

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中,這似乎無法實現。我一直在研究continuations,mutexes和併發編程,試圖在ActionScript中找到等價於「yield」的值,以查看是否可以使用協程,但絕對無濟於事。

回答

0

您可以切換到延續傳球風格並使用setTimeout

+0

但是,即使使用此方法,回調的返回值也不會實際在任何地方使用。這個怎麼做? – user1303374