为局部嵌套函数中的全局变量设置值

set value for a global variable in local nested function

本文关键字:全局变量 设置 局部 嵌套 函数      更新时间:2023-09-26

我有以下函数

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。我不能将该值传递到该函数之外。有人能告诉我将该值传递给父函数的想法吗?

哦!感谢谷歌!谢谢你回答我!

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

答案应该是

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
}