async.each 没有 运行 回调函数
async.each doesn't run callback function
我试图在将数据从 reddit api 推送到数组后做一些事情,但回调函数根本不起作用。正如您看到的代码,它应该打印 Callback function works!
但它没有。对此有什么想法吗?
let optForReddit = {
method: 'GET',
uri: 'https://www.reddit.com/domain/eroshare.com/new.json',
json: true
}
rp(optForReddit)
.then(function(redditJSON) {
let posts = redditJSON.data.children;
let len = posts.length;
let eroJson = [];
async.each(posts, function(item, callback) {
if (isVideo(item.data.url)) {
eroJson.push(getAlbumId(item.data.url));
}
},
function(err) {
console.log("Callback function works");
if(err) console.log(err);
});
})
.catch(function(err) {
console.log(err);
})
async.each(posts, function(item, callback) {
if (isVideo(item.data.url)) {
eroJson.push(getAlbumId(item.data.url));
}
callback(); // this callback is for informing that i am done processing one item in array.
},
function(err) {
//this function will be invoked when the callback() in the above body was called maximum time(e.g posts.length times)
console.log("Callback function works");
if(err) console.log(err);
});
这是因为您没有每次都调用回调函数。调用时的回调告诉异步函数我已完成当前执行并调用下一个迭代。您从未调用过回调 ()。
我试图在将数据从 reddit api 推送到数组后做一些事情,但回调函数根本不起作用。正如您看到的代码,它应该打印 Callback function works!
但它没有。对此有什么想法吗?
let optForReddit = {
method: 'GET',
uri: 'https://www.reddit.com/domain/eroshare.com/new.json',
json: true
}
rp(optForReddit)
.then(function(redditJSON) {
let posts = redditJSON.data.children;
let len = posts.length;
let eroJson = [];
async.each(posts, function(item, callback) {
if (isVideo(item.data.url)) {
eroJson.push(getAlbumId(item.data.url));
}
},
function(err) {
console.log("Callback function works");
if(err) console.log(err);
});
})
.catch(function(err) {
console.log(err);
})
async.each(posts, function(item, callback) {
if (isVideo(item.data.url)) {
eroJson.push(getAlbumId(item.data.url));
}
callback(); // this callback is for informing that i am done processing one item in array.
},
function(err) {
//this function will be invoked when the callback() in the above body was called maximum time(e.g posts.length times)
console.log("Callback function works");
if(err) console.log(err);
});
这是因为您没有每次都调用回调函数。调用时的回调告诉异步函数我已完成当前执行并调用下一个迭代。您从未调用过回调 ()。