我正在尝试创建一个布尔函数,如果文件在那里则返回true,并且startInterval将输出到我的文本框,否则返回false(如果不存在)。我在这里查了一个例子:example
这是我的布尔函数:
function isGatewayProcessing(callback){
$.ajax({
url: fileToCheck,
type:'HEAD',
cache: 'no-cache',
error: function()
{
//file not exists
console.log("File is not there!");
return callback(false);
},
success: function()
{
//file exists
console.log("File is there! Continue to output status..." + fileToCheck);
return callback(true);
}
});
}
function myCallback(exist) {
if(exist) {
console.log("The file is there, starting interval...");
startInterval();
} else {
console.log("The file is NOT there, reseting interval...");
resetInterval();
}
}
isGatewayProcessing(myCallback);
一切正常,除非有时当我重新加载页面时,即使文件不在那里(console.log在页面重新加载时显示fileToCheck = undefined
)它将解析为true并启动间隔,这将输出我的整个html页面到状态框。最初,我认为这是因为我将cache
选项设置为true,所以我将其更改为false,但仍然没有运气。
如果文件不存在,有没有人知道为什么函数可能会解析为真?
或者,我可以在这个if语句中添加一个解决方法,它会起作用,但我仍然想知道为什么当文件不存在时它会解析为true。
if(exist && fileToCheck) { //add fileToCheck here
console.log("The file is there, starting interval...");
startInterval();
}