在所有cordova.exec函数结束后执行成功回调

Success callback is executing after all cordova.exec functions have ended

本文关键字:执行 成功 回调 结束 函数 cordova exec      更新时间:2023-09-26

我正在构建一个phonegap应用程序,我目前的原生平台是android。我有个问题。我有一个用java构建的数组列表。我必须将数组与我从javascript调用的服务进行比较。但问题是,当我在for循环内部调用cordova.exec时,首先执行整个for循环,然后控制转移到对所有cordova.exec.的callbacksuccess

我的代码是-

 $.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');
}

我的callbacks()函数是在整个for循环执行之后调用的。我收到的输出是-

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。

cordova.exec调用是异步的。因此,您应该更改代码,以便在回调内部调用连续的cordova.exec或实现类似的东西;只需等待每个exec调用完成,然后再调用下一个。