我正在尝试使用异步的 each 函数来调用 abc 函数,但遇到了几个问题。代码如下。
之所以在这里使用for循环,是因为当我尝试使用每个函数时,传入abc函数的url的url是数组而不是字符串的形式。所以我想知道是否有任何其他方法可以清除它而无需添加 for 循环。
添加几个打印语句后,我意识到代码永远不会执行 pass http.get(url[a], newFileLoc, function (error, result){ 出于某种原因。总是有一条错误消息“async.each(urls, downloadFile (urls, function(){ TypeError: Object # has no method 'each'"
所以我想我真正的问题是,代码到底有什么问题?我尝试使用 forEach 而不是 each,但还有另一个错误“iterator(x, function (err) { TypeError: undefined is not a function”。
有人请帮忙!!!
var abc = function ( url, cb ) {
for (var a = 0; a < url.length; a++){
var index = url[a].lastIndexOf("/") + 1;
var filename = url[a].substr(index);
var newFileLoc = "./tmp/" + filename;
http.get(url[a], newFileLoc, function (error, result) {
if (error) {
console.error(error);
} else {
cb();
}
});
}
}
var urls = ["www.randomurl.random.random/", "www.randomurl.random.random/"];
async.each(urls, abc(urls, function(){
console.log('downloaded' + results);
}), function(err){
if(err){
console.log(err);
}
});