2

fileDoesNotExistコールバックに変数、URL、および名前を取得するにはどうすればよいですか?

window.checkIfFileExists = function(path, url, name) {
  return window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, (function(fileSystem) {
    return fileSystem.root.getFile(path, {
      create: false
    }, fileExists, fileDoesNotExist);
  }), getFSFail);
};

fileDoesNotExist = (fileEntry, url, name) ->
  downloadImage(url, name)
4

2 に答える 2

2

getFilephoneGapの関数には、2つのコールバック関数があります。ここで犯している間違いはfileDoesNotExist、変数を参照するのではなく、2つの関数を呼び出す必要があるということです。

次のようなものが機能します。

window.checkIfFileExists = function(path, url, name) {
  return window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, (function(fileSystem) {
    return fileSystem.root.getFile(path, {
      create: false
    }, 
    function(e) {
      //this will be called in case of success
    },
    function(e) {
      //this will be called in case of failure
      //you can access path, url, name in here
    });
  }), getFSFail);
};
于 2013-03-22T14:07:18.733 に答える
1

匿名関数を渡して、コールバックの呼び出しに追加することができます。

window.checkIfFileExists = function(path, url, name) {
  return window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, (function(fileSystem) {
    return fileSystem.root.getFile(path, {
      create: false
    }, fileExists, function(){
        //manually call and pass parameters
        fileDoesNotExist.call(this,path,url,name);
    });
  }), getFSFail);
};
于 2013-03-22T14:06:19.127 に答える