为什么 Node.js 异步模块在使用 async.eachLimit(array, limit, function, callback) 的第一步后停止?

2024-02-14

如果我使用这段代码:

async.eachLimit(body.photos.photo, 10, function(photo) {

         var flickr_getphoto_path = ".....";

         request.get({url: flickr_host_url + flickr_getphoto_path, json: true}, function(error, response, body) {
           if (!error && response.statusCode == 200) {

             console.log("SIZES LENGTH: " + body.sizes.size.length);
             var source_url = body.sizes.size[body.sizes.size.length - 1].source;
             request(source_url).pipe(fs.createWriteStream(path_for_downloads + path.basename(source_url)));
           }
         });

}

处理在 10 个请求后停止(即第一个周期后)。 应该有10个周期。

有人知道为什么它不能正常工作吗?


您设置的异步函数错误。第三个参数(迭代器函数)采用两个参数:正在迭代的项目,以及告诉 async 已完成的回调。您缺少(因此从未调用)回调,因此异步不知道是时候执行下一批了。

var async = require('async');

async.eachLimit(body.photos.photo, 10, cacheOnePhoto, function(err){
  if(err){
    console.log(err);
  } else {
    console.log('Processing complete');
  };
})

function cacheOnePhoto(photo, done){
  var flickr_getphoto_path = ".....";
  request.get({
    url: flickr_host_url + flickr_getphoto_path, 
    json: true
  }, function(error, response, body) {
    if (!error && response.statusCode == 200) {
      console.log("SIZES LENGTH: " + body.sizes.size.length);
      var source_url = body.sizes.size[body.sizes.size.length - 1].source;
      request(source_url).pipe(
        fs.createWriteStream(path_for_downloads + path.basename(source_url))
      );
      done(null);
    } else {
      done('Request error for '+flickr_getphoto_path);
    }
  });
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 Node.js 异步模块在使用 async.eachLimit(array, limit, function, callback) 的第一步后停止? 的相关文章

  • 如何调试 Node.js 中的标头发送错误

    我得到了很多Can t set headers after they are sent错误 他们似乎从来没有给我我的行号app js 这正常吗 人们如何调试这些错误 我抛出标题错误的代码看起来像这样 它是否做了一些奇怪的事情来隐藏行号 ap
  • 具有名称类型的猫鼬字段

    我正在尝试使用以下结构验证并保存 Passport 配置文件 http passportjs org guide profile http passportjs org guide profile 这是我想出的方案 Define the s
  • console.log 从控制台提取方法

    考虑到console未被覆盖并引用本机对象 console log方法 可能还有其他方法 是从console对象与 var log obj log console log instead of console log bind consol
  • 跟踪 C#/.NET 任务流

    我正在尝试找到一种方法来跟踪异步任务执行流程 以便轻松理解任务 启动它的原始流程是什么 我主要需要它来记录 调试和保留特定执行流的堆栈跟踪 例如 如果我的服务器有来自多个 IP 的许多客户端 并且服务器需要为每个客户端执行一个涉及许多异步操
  • Passport-azure-ad,它是否解析并验证令牌?

    我的 MEAN 堆栈应用程序使用 Azure AD 进行身份验证 我在用 护照天蓝色广告 Web api 身份验证模块 基于在这里发帖和回复 https stackoverflow com questions 36653812 passpo
  • 猫鼬模式创建

    我刚刚开始使用猫鼬 我有一个使用 mongoose 的创建脚本 它使用示例数据创建模式和数据库 现在我编写实际的应用程序 我是否需要在每次应用程序运行时创建架构对象 或者它是否已经以某种方式可用 换句话说 我是否需要在每个使用 mongoo
  • 无论 Rosetta 如何,获取 M1 Mac 的真实架构

    我需要检索 Mac 的真实架构 无论该进程是否通过 Rosetta 运行 现在在 Node js 中 process arch回报x64并在外壳中 uname m回报x86 64 感谢 Ouroborus 这张纸条 https develo
  • 在 Nodejs Express 上无法访问该网站?

    我对 Node 完全陌生 我尝试在托管 centos 7 vultr com 上运行一个测试站点 我已经安装了nodejs express Hello js const express require express const app e
  • Dotenv 仍然是 6.x.x Node 的必需软件包吗?

    我最近使用 env 文件设置了一个简单的项目 并使用 process env variable name 在我的代码中调用了 env 变量 它完全可以工作 而无需添加dotenv https www npmjs com package do
  • 找不到模块 dtrace-provider

    我有一个简单的nodejs应用程序抛出 Cannot find module build Release DTraceProviderBindings 我在网上查了一下 看起来很多人在 Windows 上使用 Restify 时都遇到了同样
  • 客户端 websocket 限制消息长度

    我正在使用 node js 开发一个 websockter 服务器 并且我发现了 Chrome 中的一些怪癖 Chrome OS X 10 7 64 位 上的最大字符串长度为 17740 而 Firefox 似乎可以毫无问题地处理非常大的字
  • nodeJS 防止 res.download 超时

    我对我的 nodeJS 服务器进行了 POST 调用 该服务器在 mongo 数据库上搜索一些数据并返回包含所请求数据的 CSV 文件 问题是数据搜索和处理超过了nodeJS默认的2分钟超时 在不同的场景中 y 使用 res writeHe
  • 错误:无法检测网络(事件=“noNetwork”,代码=NETWORK_ERROR,版本=providers/5.6.8)

    我想连接到ganache我得到一个error我不知道如何解决它 这是我的deploy js代码 它是脚本node js const ethers require ethers const solc require solc const fs
  • 在新的 Apple Silicon 架构上运行 Ruby、Node、Python 和 Docker? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如何获得在 Apple Silicon 架构上运行的 Ruby Python 和 Node js 开发环境 虚拟化软件怎么样 码头工人
  • ENOTEMPTY:目录不为空,重命名 '' -> '' (JavaScript + NPM + Ubuntu 服务器)

    好吧 我一直在为一个名为discord 的流行的类似Teamspeak 的程序制作一个机器人 我在 Ubuntu 服务器上运行机器人 并使用 NPM install 来安装各种模块 目前 该机器人的本地版本工作正常 但在 Ubuntu 上我
  • NodeJS 与 DynamoDB 抛出错误“AttributeValue 可能不包含空字符串”

    我遇到了一个问题 因为 DynamoDB 无法接受空字符串作为属性中的值 我总是必须在前端检查是否存在空字符串值 否则 API 调用将由于 Dynamo DB 抛出的错误 An AttributeValue 可能不包含空字符串 而失败 我想
  • 当代理关闭并启动时,Node JS mqtt 客户端未收到订阅的消息

    我创建了一个 mqtt Node js 客户端 我的连接选项如下 mqttOptions clientId 100 keepAlive 1000 clean false reconnectPeriod 1000 will willMessa
  • Mongoose 多个连接

    目前我的连接有这个代码猫鼬 js var mongoose require mongoose var uriUtil require mongodb uri var mongodbUri mongodb localhost db name
  • 在没有 TransactionScopeAsyncFlowOption.Enabled 的情况下启用异步 TransactionScope

    以下是使用事务范围的异步缓存和数据库更新 我无法使用TransactionScopeAsyncFlowOption Enabled在 v 4 5 1 中引入 因为我使用的 Apache Ignite Net 缓存不支持它 我尝试通过捕获当前
  • node-cron 每 3 小时运行一次作业

    我试图每 3 小时运行一次 node cron 作业 但我不确定我做得是否正确 现在我正在使用 8 它是否正确 您应该将秒和分钟值清零 并使用 3 的步长 其 cron 表达式是 0 0 3 其计算结果为 每 3 小时 0 秒 0 分钟 你

随机推荐

  • window.onbeforeunload 和 window.onunload 在 Firefox、Safari、Opera 中不起作用?

    在我的聊天应用程序中 当我的应用程序关闭时 我需要得到用户的确认 所以我用了window onbeforeunload用于确认警报和window onunload for logout 但这两个功能都可以在 IE 和 Chrome 中使用
  • 有什么方法可以返回对函数中创建的变量的引用吗?

    我想编写一个程序 分两步写入一个文件 在程序运行之前该文件可能不存在 文件名是固定的 问题是OpenOptions new write 可能会失败 在这种情况下 我想调用自定义函数trycreate 这个想法是创建文件而不是打开它并返回句柄
  • C 逗号运算符的使用[重复]

    这个问题在这里已经有答案了 您会看到它在 for 循环语句中使用 但它在任何地方都是合法的语法 您在其他地方发现了它的哪些用途 如果有的话 C 语言 以及 C 历史上是两种完全不同的编程风格的混合体 可以称为 语句编程 和 表达式编程 如您
  • JQuery JSONP 跨域调用不执行任何操作

    每当我通过 jquery 对我设置的任何页面 本地或服务器上 进行 JSONP 调用时 我得到的只是静默处理 Firebug 报告 200 OK 并且响应看起来没问题 我设置了成功时弹出的警报框 或者 失败但两者都没有出现 似乎无论我使用什
  • 使用 .Net 验证路径相等性

    比较 Net 中的两个路径以确定它们是否指向同一文件或目录的最佳方法是什么 如何验证它们是否相同 c Some Dir SOME FILE XXX C SOME DIR some file xxx 更好的是 有没有办法验证这些路径是否指向某
  • jQuery 动态 qtip 显示 div,但每次鼠标悬停都会变得越来越慢

    我使用 jQuery qTip 插件来显示鼠标悬停链接 img 的 div 我写了两个选项来使用 但这两个选项都造成了麻烦 V1 第一个版本仅在我第二次将鼠标移到链接上时才显示工具提示 重复将鼠标悬停在链接上后 脚本似乎变得越来越慢 6 7
  • php unlink() 非ascii字符=找不到文件[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 简短 php unlink 正在处理名称为 asci 的文件 但是 如果我尝试删除名称包括 等的文件 则会出现取消链接生
  • 无法使用ajax从数据库获取数据

    我正在开发 ASP Net MVC 应用程序 我想使用ajax从数据库获取数据 它不会在网页中加载数据 控制台窗口上也没有错误 在 Visual Studio 中也不例外 以下是我的控制器代码 HttpGet public JsonResu
  • 如何使用 HTML 进行 Skype 通话?

    我尝试在我的脚本中插入以下代码片段 通过单击该链接 它应该会呼叫 Skype 帐户 我已经找了好几个小时了 但不明白为什么它不起作用 pre code lt a href quot callTo USERNAME quot gt lt im
  • 市场上的 Github Actions 可以做恶意的事情吗?

    我是 GitHub Actions 的绝对初学者 市场上有可用的操作 这些操作是否可以对我的存储库进行恶意操作 例如 删除我的仓库 将恶意代码提交到我的存储库中 从私人存储库复制内容 答案是 不幸的是 YES 您可以在这里找到一些参考 使用
  • 使用PHPExcel制作自动生成excel文件

    我想让我的 Excel 文件填充从数据库中获取的一些数据 例如某人的姓名和年龄 假设我的数据库中有 10 个人 我希望将这 10 个人包含在我的 Excel 文件中 所以基本上 你会得到 姓名年龄 人1 20岁 人2 25岁 等等 我知道如
  • JavaScript 函数返回 TYPE BOOLEAN 的变量名称,而不是模板文字中的值本身 [重复]

    这个问题在这里已经有答案了 javascript 中是否有一个函数 我可以将变量 而不是值 设置为像 parseVariableName 这样的字符串 例如 在我的场景中 我想要使用布尔变量有一个 动态类名不创建对象 将其作为数组并循环 我
  • 回形针不保存附件

    我是 Rails 和 Web 开发领域的新手 我已经创建了一个用户模型 现在我正在尝试让用户能够使用回形针添加个人资料图片 在我的用户显示页面中 用户可以单击链接打开 编辑 页面 从中可以看到要浏览的表单并选择要上传的图像 单击按钮时 它会
  • 从数据库读取和显示时,“应用程序启动方法中出现异常,java.lang.reflect.InitationTargetException”

    我正在尝试从 MySQL 数据库读取值并将其显示在 JavaFX 的表中 我使用netbeans IDE 当我运行代码时 我得到了标题中提到的异常 我将在下面发布代码 public class ViewSubject extends App
  • 使用 data.table R 选择行或列?

    假设我有一个 data table 例如 library data table RRR lt data table 1 15 runif 15 rgeom 15 0 5 rbinom 15 2 0 5 V1 V2 V3 V4 1 1 0 3
  • Android:MediaPlayer 视频宽高比问题

    我遇到一个无法解决的问题 我正在使用 MediaPlayer 类来播放视频 但是 我总是失去原始的纵横比 这里提到了媒体播放器代码和xml代码 我已经尝试了很多方法但仍然无法解决问题 我需要保持原始的宽高比 我已在 Android 清单文件
  • 按字母顺序排列的列表,轨道上有 ruby

    我正在构建一个按字母顺序排序的列表 并正在寻找一种解决方案来获取数据库结果并按字母顺序排序 任何帮助是极大的赞赏 在上面的nduks的基础上 我喜欢 公司 rb def initial return if name blank name 0
  • Firestore:文档父名称缺少“/”

    我正在使用 jest 对 firestore 执行集成测试 我期望收到包含等于 field1 和 field2 的字段的文档 但是 我收到了以下错误 我尝试在 firecase 控制台中创建复合索引 但问题仍然存在 这种情况似乎只在测试期间
  • Django:分配外键 - 无法获取类的代表

    我在这里问这个问题是因为 在我的搜索中 这个错误通常与查询有关 而不是与外键分配有关 我收到的错误发生在模型的方法中 这是代码 class Deal models Model model fields def update existing
  • 为什么 Node.js 异步模块在使用 async.eachLimit(array, limit, function, callback) 的第一步后停止?

    如果我使用这段代码 async eachLimit body photos photo 10 function photo var flickr getphoto path request get url flickr host url f