作爲一名PHP程序員,我非常習慣於這樣一個事實,即如果我調用函數function1()必須返回一些值,我會知道該程序將不會繼續,該函數返回。從同步流動到異步流動困境
現在,即時通訊使用AIR開發AS3的應用程序,我需要下載一些圖片,如果某些條件得到滿足,不知道有多少,所以使用對於這樣的IM:
for (var w:int=0; w < newData_array[2]['content'].length; w++) {
for (var j:int=0; j < oldData_array[2]['content'].length; j++) {
if((oldData_array[2]['content'][j]['id'] == newData_array[2]['content'][w]['id']) && (oldData_array[2]['content'][j]['last_mod'] != newData_array[2]['content'][w]['last_mod'])){
//need to download a image...
}
}
}
正如你可以看到即時比較每個陣列中的每個元素(newData_array和oldData_array)。如果條件符合,我需要下載一些東西,因爲我使用的是URLloader並且你知道這個函數是異步的,增加一個監聽器,當下載完成時會觸發一個事件,問題非常清楚,因爲urlloader不會停止for循環(就像我期望的PHP語言一樣),我只是在下載一組圖像的同時創建一個災難,因爲我不知道何時保存。所以我需要使用任何意思的聽衆,但因爲我不習慣這種程序,我非常鬱悶。
我對保存到磁盤例程不感興趣,該部分已經完成了,我只是想了解如何構造這個算法來完成這個工作。