【问题标题】:Returning a value from Cordova File Plugin when called from a function从函数调用时从 Cordova 文件插件返回值
【发布时间】:2021-01-17 21:16:11
【问题描述】:

我看到有人发布了类似的问题,但它并不真正符合我的要求:

这是我的代码:

$(document).ready(function(){
  $("#btnTest").bind("click", function(){
    a = createFile();
      alert(">> "+a); // Displayed returned value;
  });

  function createFile(){
    var type = window.TEMPORARY;
    var size = 5*1024*1024;
    window.requestFileSystem(type, size, successCallback, errorCallback)

    function successCallback(fs) {
      fs.root.getFile('log.txt', {create: true, exclusive: true}, function(fileEntry) {
        alert('File creation successfull!');
        return 1; // Return value;
      }, errorCallback);
    }

    function errorCallback(error) {
      alert("ERROR: " + error.code)
      return 2; // Return value;
    }
    }   
});

基本上,一旦调用 createFile() 函数,它将返回 1(成功)或 2(错误)。问题是我不知道如何返回值并正确调用它?

任何帮助都会非常好。

【问题讨论】:

    标签: javascript jquery cordova plugins phonegap


    【解决方案1】:

    我会在你的函数中创建一个名为 returnValue 的全局变量并设置它的值

    $(document).ready(function(){
      $("#btnTest").bind("click", function(){
        a = createFile();
          alert(">> "+a); // Displayed returned value;
      });
    
      function createFile(){
        var returnValue;
        var type = window.TEMPORARY;
        var size = 5*1024*1024;
        window.requestFileSystem(type, size, successCallback, errorCallback)
    
        function successCallback(fs) {
          fs.root.getFile('log.txt', {create: true, exclusive: true}, function(fileEntry) {
            alert('File creation successfull!');
            returnValue = 1; // Return value;
          }, errorCallback);
        }
    
        function errorCallback(error) {
          alert("ERROR: " + error.code)
          returnValue = 2; // Return value;
        }
        return returnValue;
      }
        
    });
    

    【讨论】:

    • 非常感谢您的回复,但返回的值是未定义的 - 而不是全局返回值变量的值。
    • 哎呀是因为我错过了一个括号,再检查一遍
    • 很抱歉很痛苦,但它总是返回零 (0)。
    • 您的成功或错误回调是否在运行?因为如果是,那么您可以尝试对其进行重构,以便回调返回您想要的值,并将其设置为等于您的 returnValue
    • 是的,这两个警报正常工作(即文件创建成功或显示错误代码),但返回值始终为零。
    猜你喜欢
    • 2011-02-06
    • 2018-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-20
    • 1970-01-01
    • 2015-12-15
    • 2015-11-12
    相关资源
    最近更新 更多