私は次の機能を持っています:
downloadProductImage: function(remoteImage, localImageName){
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) {
fileSystem.root.getFile(localImageName, {create: true, exclusive: false}, function(fileEntry) {
var localPath = fileEntry.fullPath;
var ft = new FileTransfer();
ft.download(remoteImage,
localPath, function(entry) {
//RETURN THIS imageURL = entry.fullPath;
}, fail);
}, fail);
}, fail);
}
関数downloadProductImage()はグローバル変数app = {}内にあるため、app.downloadProductImage()からアクセスします。
この関数はループ内で実行され、imageURLを返したいのですが、取得できないようです。var app={}の外部でグローバルvar=imageURLを宣言しますが、別の関数でimageURLを取得しようとすると、最初のループはundefinedを返し、残りは正しいです。
最初のループが未定義を返す理由がわかりません。varimageURLはページの上部でグローバルに宣言されています。
上記のコード内で//RETURNTHIS imageURL = entry.fullPath;の下にalert(imageURL)を送信すると、関数の外部でアクセスしようとしたときではなく、正しくアラートが表示されます。