我正在使用navigator.camera.getPicture api调用的以下代码:
function getImageURI(imageURI) {
//resolve file system for image to move.
window.resolveLocalFileSystemURI(imageURI, gotPicture, function(error) {onfail(error,'Get Target Image');});
function gotPicture(targetImg) {
//move the image into the post_(n) directory.
targetImg.moveTo(Globals.POSTDIR_OBJ,Utils.getImageName(), moveSuccess2, function(error){alert('Move Error')} );
function moveSuccess2(){
alert('addPicture moveSuccess');
//update the picture counts in the client and DB.
Globals.pictCount++;
updateFilesById();
setTimeout("Gallery.show()",500);
};
}; //gotPicture
}; //getImageURI
问题是大约30%的时间都没有调用成功或失败回调函数。
每次移动实际上都是成功的,但成功函数大约没有执行1/3的时间。
答案 0 :(得分:0)
只是想对这一个进行猜测。我的猜测是,由于成功回调的异步性质,由于线程的不可预测性,偶尔尚未定义成功函数。尝试将moveSuccess2函数的声明移动到某个地方,它的声明将始终在调用moveTo函数之前完成。这可能意味着将其声明为getPicture函数之外的函数,或者声明为错误处理程序之类的匿名函数,或者在调用moveTo之前声明它。