javascript - 在局部嵌套函数中设置全局变量的值

标签 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。我无法将该值传递到该函数之外。谁能告诉我将该值传递给父函数的任何想法吗?

最佳答案

哦!谢谢谷歌!回答我!

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

答案应该是

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
}

关于javascript - 在局部嵌套函数中设置全局变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20069194/

相关文章:

javascript - 如何在刷新时保持我在页面上的位置(AJAX)

javascript - Protractor - 按钮点击比预期更快地调用回调

ios - 如何从PhoneGap设置pausesLocationUpdatesAutomatically属性?

javascript - 更新 AngularJS 服务中的 $scope 对象不会更新 View

JavaScript "arguments"来自 John Resig,编号 40

Javascript Object Literal Notation - 创建 mixins(某种程度上)

javascript - 工作列表组 Bootstrap

javascript - Phonegap 和 Angularjs - iOS 唯一标识符

ios - iPhone XR/XS/iPad Pro 11 上 Cordova 项目的屏幕尺寸不正确

android - 无法通过 visual studio cordova 构建签名的 android 包