2014-10-22 82 views
0

我正在構建一個phonegap應用程序,而且我的當前本機平臺是android。我有個問題。我有一個數組列表內置的Java。我必須將該數組與我從javascript調用的服務進行比較。但問題是,當我在內部調用cordova.exec進行循環時,首先執行整個for循環,然後控件切換到所有cordova.exec的callbacksuccess。成功回調在所有cordova.exec函數結束後執行

我的代碼是 -

$.ajax({ 
     url : ..., 
     type: "GET", 
     data: null, 
     setTimeout:1, 
     dataType:"JSON", 
     success: function(response) 
     { 
     var mydata=''; 
     for(var i=0;i<response.length;i++) 
     { 
      alert('inside for '+i); 
      obj=response[i]; 
      var testpackage=obj.PackageName; 
      cordova.exec(callbacks,callbacke,'MyPlugin','plugin2',[testpackage]); 
     } 
     }, 
    error: function() 
    { 
     alert('Failed to fetch list.Try again later.'); 
    } 
    }); 
function callbacks(e) 
{ 
alert('success'); 
} 

我的回調()整個for循環執行後函數被調用。 ,我收到IS-

inside for 0 
inside for 1 
inside for 2 
success 
success 
success 

我預期的輸出是 -

inside for 0 
success 
inside for 1 
success 
inside for 2 
success 

輸出我已經嘗試了很多東西。但我仍然沒有找到解決方案。 Thanx提前。

回答

0

cordova.exec調用是異步的。因此,您應該更改代碼,以便在回調本身內部調用連續的cordova.execs或實現類似的功能;只需等待每個執行調用完成後再調用下一個調用即可。

+0

我可以做些什麼,我可以在我的回調中從java代碼獲取數據到javascript數據?我無法將數據從Java代碼發送到JavaScript。請幫忙 – megha 2014-10-24 04:22:29

+0

@megha剛剛閱讀有關編寫插件的cordova文檔。你有比你需要更多的信息。 – mentat 2014-10-24 09:12:36

+0

我已閱讀完整且深入。但是它沒有提到將結果數組傳遞給從java代碼回調到javascript的回調函數 – megha 2014-10-25 05:29:08