phonegap filetransfer.download方法是同步或异步的

时间:2013-12-26 06:12:31

标签: cordova

如果filetransfer.download()方法异步,请告诉我如何使此方法同步

ft.download(remoteFile, localPath, function(entry) {
  alert("successfully downloaded" + entry.fullpath);
  console.log("success" + entry.filepath);
  localpath.push(entry.filepath);
}, fail, false);

1 个答案:

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