在本地嵌套函数中设置全局变量的值

时间:2013-11-19 10:37:57

标签: javascript cordova

我有以下功能

function fileExists(FileName) {
    var retvar="false";
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) {

      fileSystem.root.getFile(FileName, null,
           function() {
              fileEntry.file(function() {
                 alert("Exists");
              },
              function() {

       });
      },
      function () {
          retvar = "true";
          alert(retvar);  //says true
      });
     },null);

    alert(retvar);  //says false
}

这里,我必须在内部嵌套函数中将retvar的值设置为true。我无法在该函数之外传递该值。任何人都可以告诉我将该值传递给父函数的想法吗?

1 个答案:

答案 0 :(得分:3)

哦!谢谢谷歌!回答我!

我必须在函数之前初始化变量!

答案应该是

var retvar="";
function fileExists(FileName) {
    retvar = "false";
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) {

      fileSystem.root.getFile(FileName, null,
           function() {
              fileEntry.file(function() {
                 alert("Exists");
              },
              function() {

       });
      },
      function () {
          retvar = "true";
          alert(retvar);  //says true
      });
     },null);

    alert(retvar);  //says same if it is assigned as like in the inner loop
}