【问题标题】:javascript resolveLocalFileSystemURL triggering both success and fail callbacksjavascript resolveLocalFileSystemURL 触发成功和失败回调
【发布时间】:2023-04-04 02:24:01
【问题描述】:

我正在使用以下背靠背命令在我的 cordova 应用程序中进行简单的文件检查:

function initWhipData(dir) {
   console.log("DIR = " +dir) ;
}

//Test:
window.resolveLocalFileSystemURL(fPath + "whipdata.json",
   function() { console.log("TEST File Exists")},
   function() { console.log("TEST File doesnt exist") }
) ;

//Actual:
window.resolveLocalFileSystemURL(fPath + "whipdata.json",
   initWhipData(10),
   initWhipData(20)
) ;

在控制台中。我得到以下信息,但不明白为什么:

TEST File Exists  // expected
Dir = 10  // expected
Dir = 20  // not expected

在第二次文件检查中,成功和失败都被调用。我做错了什么……不理解?

然后我尝试了以下方法并得到了预期的结果:

window.resolveLocalFileSystemURL(fPath + "whipdata.json",
   function() {initWhipData(10)},
   function() { initWhipData(20)} 
) ;

它打印出“Dir = 10”。显然我不理解我认为我理解的东西。为什么将我的函数包装在一个函数中,而直接将函数引用为成功/失败回调不起作用?

【问题讨论】:

    标签: javascript cordova callback file-exists cordova-plugin-file


    【解决方案1】:

    这就是我们如何调用函数并获得结果var a = initWhipData(10);
    这就是我们获取函数var a = initWhipData;

    的引用的方式

    我的意思是,您正在尝试调用 initWhipData 函数,然后将其结果作为参数传递,而不是传递它的引用。
    这就是为什么首先调用 initWhipData(10) 和 initWhipData(20) 然后返回的值作为参数传递。

    window.resolveLocalFileSystemURL(fPath + "whipdata.json",
       initWhipData(10),
       initWhipData(20)
    );
    

    以下是如何传递回调函数的示例..

    window.resolveLocalFileSystemURL(fPath + "whipdata.json",
       successCallback, //If success then call this function
       errorCallback //If error happen then call this function
    );
    
    function successCallback(){
        initWhipData(10)
    }
    function errorCallback(){
        initWhipData(20)
    }
    

    【讨论】:

    • 这是我需要理解和/或丢失的部分:you're trying to call initWhipData function then pass the result of it as a parameter instead of passing it's reference - 谢谢!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-21
    • 1970-01-01
    相关资源
    最近更新 更多