使cordova.exec同步

时间:2014-07-28 11:04:47

标签: android jquery cordova phonegap-plugins

在android使用phonegap,即cordova2.9,我正在寻找一种方法使这个调用同步:

for(var i=0;i<5;i++){
cordova.exec(onSuccess, fail, "PluginName", "echo",["arg1","arg2"]); 
}

我注意到onSuccess函数在循环结束时被触发,即在i变为等于5之后

1 个答案:

答案 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);