成功和错误回调都在javascript中执行

时间:2014-11-11 20:07:32

标签: javascript callback

当我检查我的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]));


    }

},

1 个答案:

答案 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);