在android使用phonegap,即cordova2.9,我正在寻找一种方法使这个调用同步:
for(var i=0;i<5;i++){
cordova.exec(onSuccess, fail, "PluginName", "echo",["arg1","arg2"]);
}
我注意到onSuccess函数在循环结束时被触发,即在i变为等于5之后
答案 0 :(得分:1)
Cordova是异步的。
如果它正在使用同步调用,则在执行循环期间UI将被卡住。
要实现您要执行的操作,您应该在onSuccess和失败回调中增加并测试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);