我有三个cordova.exec调用和它的执行aysnc。我的目标是在完成所有三个调用后调用第四个cordova调用。我不能嵌套调用使它同步,但我需要在三个调用完成后调用第四个(像jquery中的promise/when)。
lc8prwob1#
您将需要Cordova promise polyfil。然后像其他人一样编写代码:
//exec as promise var execPromise = function(){ return new Promise( function(resolve,reject){ cordova.exec.apply( cordova, [ resolve, reject ].concat( Array.prototype.slice.apply(arguments) ) ) } ); } Promise.all( [ execPromise(args), execPromise(args), execPromise(args) ] ) .then( function(results){ console.log("three are done, results are:",results);//array of results return execPromise(args); } ) .then( function(result){ console.log("all are done, result:",result); } ) .catch( function(err){ console.log("something went wrong, error is:",err); } );
1条答案
按热度按时间lc8prwob1#
您将需要Cordova promise polyfil。然后像其他人一样编写代码: