使 cordova.exec 同步
Posted
技术标签:
【中文标题】使 cordova.exec 同步【英文标题】:Make cordova.exec synchronous 【发布时间】:2014-07-28 11:04:46 【问题描述】:在使用phonegap(即cordova2.9)的android中,我正在寻找一种方法来使这个调用同步:
for(var i=0;i<5;i++)
cordova.exec(onSuccess, fail, "PluginName", "echo",["arg1","arg2"]);
我注意到 onSuccess 函数在循环的最后被触发,即在 i 等于 5 之后
【问题讨论】:
【参考方案1】:Cordova 是异步的。
如果使用同步调用,UI会在循环执行期间卡住。
为了实现你想要做的事情,你应该在 onSuccess 和 fail 回调中增加并测试 i 的值。
也许这样的事情会起作用(没有太多时间来测试它/真正考虑一下):
var execute=function(val,max)
if(val<max)
cordova.exec(function()
onSuccess();
execute(val+1,max);
, function()
fail();
execute(val+1,max);
,
"PluginName", "echo",["arg1","arg2"]);
execute(0,5);
【讨论】:
以上是关于使 cordova.exec 同步的主要内容,如果未能解决你的问题,请参考以下文章