问题标签 [node-async]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 来自 $.getJSON 和 node-async 的返回不正确 - 服务器端节点/express jsonp
使用带有节点异步的 $.getJSON 到运行带有 jsonp 响应的 node/express 的服务器时,我遇到了一个奇怪的错误。
我使用节点异步迭代数组对服务器进行了两次调用,但是当所有操作完成后,第二个结果具有一些包含第一个值的属性。
奇怪的是服务器端响应正在返回 - 因为返回的属性之一是正确的 - 但另一个属性看起来在第二次调用时被第一次调用的属性覆盖。
在服务器端,我已经对其进行了调试并检查了返回正确结果的 res.jsonp 行,我还使用一些控制台日志记录服务器端对其进行了检查。
下面的代码 - TLDR 结果如下:
这是代码的简化版本(删除了很多垃圾,但逻辑保持不变):
我已经尝试使用异步系列、异步并行以及 promise 样式 getJSON 和回调样式 getJSON - 都显示相同的错误。
可能是我的客户端代码,或者我正在对服务器端 jsonp 做一些愚蠢的事情。
服务器端,我建立数据然后去
有什么想法吗?
node.js - 在异步瀑布中嵌套异步 api 调用
我正在使用异步瀑布进行两个 API 调用。第二个调用依赖于第一个调用的数据,因此第一个调用在第二个调用开始之前完成执行是很重要的。但是,在下面的代码片段中,第二个函数总是在第一个函数完成之前启动,因此它永远不会获取数据。我该如何解决这个问题?谢谢!
更新 1 我错误地将回调作为请求的第三个参数。我已经解决了这个问题,但代码仍然没有按预期运行。谢谢
javascript - 在 Node 中同步 http 请求
我是节点的新手,我正在尝试找出回调和它的异步性质。
我有这种功能:
鉴于大多数节点开发人员都使用这个或类似的解决方案,我还试图了解如何使用Async 库。
如何“阻止”(或等待结果)我的脚本流,直到我从 http 请求中获得结果?可能以异步库为例
谢谢
javascript - 在nodejs中制作异步回调函数
我想模块化的代码令人困惑。我有一个在 Mongodb 中实现的总账。将学分从 转移john
到 在 中adam
附加以下文件db.dummyTx
:
我想创建一个transfer(from, to, amount, callback())
回调接收transaction
文档/对象的函数。
我使用该async
模块创建了以下内容:
我的理由是,如果我通过function(err,transaction){if err console.log(err);}
as acallback
,它最终将作为最终回调运行。但是,它说err
未定义acallback(err, transaction)
忍受我,我async
昨天才发现,所以我是一个比喻五岁的孩子。
我的第二个想法是将函数链保存到一个名为的数组transfer
中并调用它,就async(transfer,function(err,transaction){if err console.log(err)};
好像我无法让它工作一样。
编辑:我也希望acallback
参数是可选的。
arrays - 嵌套在 async.eachSeries 循环中的 async.series 终止提前发送 POST 响应
我正在接收包含对象数组 (requestArray) 的 POST 调用。在响应 POST 之前,我需要按顺序通过一系列函数传递数组的对象。我选择了异步库来帮助我完成这项任务,但是我很难控制代码的执行流程。
我正在使用一个全局数组来存储每个函数(responseArray)的结果。一些函数取决于先前函数的结果。我不想使用 async.waterfall() 因为 1. 我必须重写我的代码 2. 我可能会遇到相同的早期循环终止问题。下面是我的代码有问题的代码。
async.series() 中的每个函数都返回 callback(null, result)。在 process1() 返回其回调后, async.eachSeries() 会跳转到之前的下一个数组条目,这是理想的。但是, async.eachSeries() 在返回所有 async.series() 结果之前执行 POST 响应。我如何修改我的代码,以便在我发送 POST 响应之前从 process1-3 返回所有 importArray 结果(exportArray)之后完成执行?
node.js - 如何处理节点 http 请求
我试图了解如何等待 http 请求在节点中完成。我想发出两个 http 请求,并在 http 请求完成后调用的函数中使用结果。
我正在使用异步和请求,并且一直在使用 async.series,如下所示:
控制台输出显示:
我想等到每个http请求函数完成后,再进行下一部分代码。我如何实现这一目标?
javascript - 如何从 node.js 的 async.waterfall 链中调用外部函数
我在尝试使用 modbus-tcp 时遇到问题async.waterfall
基本上我必须先完成一个 modbus 读取,然后再继续另一个。
client.readInputRegister
接受一个参数,我无法找到一种方法来按顺序将响应返回到瀑布链。
node.js - 如何在 Node 的异步 eachSeries 中正确获取结果数组?
我正在尝试使用 asynceachSeries
来编写每个类别的报告计数。类别和报告并存储在单独的集合中,然后我首先获取可用类别并对它们执行计数搜索。
这是我的代码:
问题是我什么也没收到,console.log
那里输出实际数字,我做错了什么?
javascript - 在 node.js 中迭代大量异步调用/结果(使用 ES6 / async / bluebird / generators)?
我正在 node.js 中编写一个实用程序,它必须每晚处理和连接大量文件。在同步伪代码中,它看起来像这样(为了清楚起见,省略了 try / catch):
但是,在我使用的库中,popNext()
实际上是一个节点样式的异步方法,看起来像这样:popNext(callback)
.
由于我是从头开始编写中间件,因此我可以使用--harmony
(例如generators)、async或bluebird。
理想情况下,我更喜欢类似的东西:
但是,我对其他“标准”解决方案持开放态度。我想知道这个问题最简洁的解决方案是什么?
编辑同时产生所有(在常规for循环中)可能无法解决我的问题,因为我们谈论的是100k,并且对于我必须打开和读取文件的每个项目,所以我可能会用完文件描述符.
javascript - Async.each 最终回调在延迟承诺回调函数中时不会触发
根据我迄今为止的研究,我相信我正确使用了 async.each 。底部函数 addToPlaylist 调用顶部函数 getPerformances。我试图弄清楚为什么 addToPlaylist 中的最终回调没有被调用以及如何修复它。谢谢!
问题在这里——如果 cb() 在 then() 中,则不会调用最终回调。如果将 CB 移到 promise 回调之外,则会调用 finalCallback,但当然,它调用得太快了。