如果filetransfer.download()
方法异步,请告诉我如何使此方法同步。
ft.download(remoteFile, localPath, function(entry) {
alert("successfully downloaded" + entry.fullpath);
console.log("success" + entry.filepath);
localpath.push(entry.filepath);
}, fail, false);
答案 0 :(得分:1)
Phonegap / Cordova以异步方式工作,因此如果您想以非异步方式执行下载,则必须在下载成功回调中触发所需的代码,以确保下载成功,或者在需要时在错误回调中触发。< / p>
如果您执行下载,然后执行其他代码,则会因为异步性质而继续使用您提到的其他代码。因此,如果您想按顺序执行某些操作,基本上总是使用回调。
这是我的代码的一部分,它将为您提供想法。
function DownloadFile ( serverFileURL, fileFullPath, fileName, dwnldSuccess, dwnldWError )
{
// Create and configure the file transfer object to download the file
var fileTransfer = new FileTransfer();
var uri = encodeURI(serverFileURL);
fileTransfer.download(
uri,
fileFullPath,
function ( entry ){
dwnldSuccess ( entry, fileName ); // Your success code will be here or trigger your desired function.
},
function ( error ){
dwnldWError ( error, fileName ); // Your failure code will be here or trigger your desired function.
},
false
);
}