【发布时间】:2017-06-09 12:28:18
【问题描述】:
我有一个带有回调的函数,它检查我的服务器上是否存在文件,返回的结果是“true”或“false”。我的问题是我在一个 for 循环中调用这个“DoesFIleExist”函数,并在函数前面计算了“id”。问题是,每当一个函数调用被解析并尝试调用“AddResultToPage”时,它会使用最后一次 for 循环迭代的 id,而它应该使用调用函数时给出的 id。
“DoesFileExist”函数将路径和回调作为参数。
任何帮助都将不胜感激,因为我在网上和这里都看过,但我发现的大多数答案都与按钮和按钮上的事件侦听器有关。
DoesFileExist('/XML/'+id.trim()+'.xml',function(data) {
console.log(id.trim()+" "+data);
if (data == "true") {
(function () {
console.log("adding to page - "+id.trim());
AddResultToPage(id,false);
})();
}else{
console.log("the file does not exist");
}
【问题讨论】:
-
你需要一个闭包,查一下
-
你应该把 id 从全局空间中取出,用 var 控制它的作用域并作为参数传递。否则 id 可以是任何东西。 (其他人可以将其更改为数字并破坏一切)
标签: javascript for-loop callback inline