javascript resolveLocalFileSystemURL触发成功和失败回调
我正在使用以下背靠背命令在cordova应用程序中执行简单的文件检查:javascript resolveLocalFileSystemURL触发成功和失败回调,javascript,cordova,callback,file-exists,cordova-plugin-file,Javascript,Cordova,Callback,File Exists,Cordova Plugin File,我正在使用以下背靠背命令在cordova应用程序中执行简单的文件检查: function initWhipData(dir) { console.log("DIR = " +dir) ; } //Test: window.resolveLocalFileSystemURL(fPath + "whipdata.json", function() { console.log("TEST File Exists")}, function() { console.log("TEST
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
在第二次文件检查中,同时调用success和fail。我做错了什么…不理解
然后我尝试了以下方法,得到了预期的结果:
window.resolveLocalFileSystemURL(fPath + "whipdata.json",
function() {initWhipData(10)},
function() { initWhipData(20)}
) ;
它打印出“Dir=10”。显然,我没有理解一些我认为我理解的东西。当成功/失败回调不起作用时,为什么在函数中包装我的函数会起作用而直接引用函数?这就是我们调用函数并获得结果的方式
var a=initWhipData(10)代码>
这就是我们获取函数的引用的方法代码>
我的意思是,您试图调用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)
}
这是我需要理解和/或缺少的部分:您试图调用initWhipData函数,然后将其结果作为参数传递,而不是传递其引用
-谢谢!!