Javascript async eachSeries-从未调用回调

Javascript async eachSeries-从未调用回调,javascript,node.js,Javascript,Node.js,我对async.eachSeries有一个问题-我正在使用它迭代数组并使用函数下载文件(请参阅源代码)-但从未调用回调。。。我做错什么了吗?我不确定回电话的事 功能检查和下载播放列表(数据,cb){ eachSeries(数据、函数(val、回调){ url=val.media[0]; fileSize=val.fileSize; checkAndDownloadItem(url、文件大小、回调); },函数(错误){ //从未打过电话。。。 如果(错误){ 返回cb(错误); } cb();

我对async.eachSeries有一个问题-我正在使用它迭代数组并使用函数下载文件(请参阅源代码)-但从未调用回调。。。我做错什么了吗?我不确定回电话的事

功能检查和下载播放列表(数据,cb){
eachSeries(数据、函数(val、回调){
url=val.media[0];
fileSize=val.fileSize;
checkAndDownloadItem(url、文件大小、回调);
},函数(错误){
//从未打过电话。。。
如果(错误){
返回cb(错误);
}
cb();
});
}
函数checkAndDownloadItem(url、文件大小、cb){
if(checkedUrls.indexOf(url)=-1){
fileName=getFileNameFromUrl(url);
filePath=path.join(config.movieDir,文件名);
//将文件保存在usedFiles[]
d=新日期();
usedFiles[fileName]=d.toISOString();
access(文件路径,fs.constants.F_确定,函数(错误){
checkedUrls.push(url);
如果(错误){
//文件不在那里
debug('文件丢失,start DL:'+文件名);
下载(url、文件路径、cb);
}否则{
//文件在那里
debug('文件已存在:'+文件名);
cb(空);
}
});
}
}
函数下载(url、目的地、cb){
debug('start DL:'+url);
var tmpDestination=目的地+'.tmp';
file=fs.createWriteStream(tmpDestination);
request=http.get(url,函数(响应){
管道(文件);
on('finish',function(){
debug('finished DL:'+url);
file.close();
fs.renameSync(tmpdestation,destination);
cb(空);
});
}).on('error',函数(error){
fs.unlinkSync(tmpdestimation);
如果(错误){
cb(错误消息);
log('notice','error DL:'+url);
}
cb(空);
});

}
尝试将回调函数更改为cb

    function checkAndDownloadPlaylist(data,cb) {

    async.eachSeries(data,function(val,cb) {
        url=val.media[0];
        fileSize=val.fileSize;
        checkAndDownloadItem(url,fileSize, cb);
    }, function(error) {
        if(error) {
            throw error;
        }
        console.log('Done!');
    });
 }

是的,在
checkAndDownloadItem
中有很多情况下,
cb
从未被调用;修复它们。该死,现在我明白了-谢谢:)变量名没有任何区别。最后省略对
cb
的调用肯定是错误的。