javascript - async.each 不运行回调函数

标签 javascript node.js asynchronous node-request node-async

我试图在将数据从 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);
  });

这是因为您没有每次都调用回调函数。调用时的回调告诉异步函数我已完成当前执行并调用下一个迭代。您从未调用过回调()。

关于javascript - async.each 不运行回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42185183/

相关文章:

javascript - 文字对象中的嵌套函数

javascript - 选择 li 项目后尝试让 nav 切换关闭

javascript - 模态对话框中 ui-grid 的大小调整问题

node.js - 使用带有 AWS KMS 的 Nodejs 在 s3 中加密和解密文件

javascript - 将 C++ 代码连接到 Electron 应用程序中的 HTML Canvas ?

arrays - Mongoose 从 findByIdAndUpdate 中删除数组(继承模式)

javascript - 当查询找不到用户时,为什么页面不重定向?

c# - 从异步编程模型 (APM) 转向基于任务的异步模式 (TAP)

c++ - Boost Asio async_read 不会停止阅读?

python - Gevent Pool 似乎并没有提高性能