当我检查我的validUrlList和invalidUrlList时,它们是相同的。为什么两个回调都被解雇了?
filterPhotos: function(urlList) {
var filterSuccess;
var filterError;
var i;
filterSuccess = function (url) {
pg_scope.validUrlList.push(url)
};
filterError = function (url) {
pg_scope.invalidUrlList.push(url)
};
for (i=0; i<urlList.length; i++) {
console.log(i);
window.resolveLocalFileSystemURL(urlList[i], filterSuccess(urlList[i]) , filterError(urlList[i]));
}
},
答案 0 :(得分:1)
因为您正在调用函数而不是正确传递其处理程序。
你应该这样做: window.resolveLocalFileSystemURL(urlList [i],filterSuccess,filterError);
编辑: 如果要传递这些函数的参数,一种简单的方法是使用闭包:
var x = 2; // example parameter
window.resolveLocalFileSystemURL(urlList[i],
function filterSuccess(url){
pg_scope.validUrlList.push(url);
console.log(x); // we can use x!
},
filterError);