2012-10-02 42 views
0

我正在Titanium Studio中的應用程序中工作。我實現了一個MVC基礎架構,在控制器中,我想從雲端獲取一些數據,然後才能調用視圖。代碼與此類似。Asyncronus函數返回

Default : function() { 
    Cloud.Objects.query({ 
     classname : 'Customer', 
    }, function(e) { 
      if (e.success) { 
       Ti.API.info('aci ' + e.Customer); 
       favorites = e.Customer; 
       return this.view("Default", favorites); 
      } else { 
       alert('Error:\\n' + ((e.error && e.message) || JSON.stringify(e))); 
      } 
     }); 
    }, 
} 

的事情是,第一函數必須返回「this.view(」默認「收藏);」,而不是從查詢回調。另外,查詢函數是asyncronus,我必須等待數據,然後才調用視圖。

你有什麼想法嗎?

謝謝

回答

0

創建即使像receiveCustomer一些自定義事件處理程序。

當客戶檢索到時,觸發事件receiveCustomer並將客戶設置爲事件數據或使用檢索到的數據初始化回調以外的某個變量(但在此情況下爲事件觸發前)。在事件處理程序onReceiveCustomer中,從事件數據或該變量中獲取客戶並呈現視圖。

+0

我想這樣做,但主函數必須返回this.view(...)。如果我創建了一個eventListener,我也遇到了同樣的問題,因爲事件偵聽器也會收到一個函數作爲回調函數,如果我把它返回,那麼函數將返回視圖,而不是主函數 –