2014-10-22 49 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