问题标签 [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.

0 投票
2 回答
108 浏览

javascript - 来自 $.getJSON 和 node-async 的返回不正确 - 服务器端节点/express jsonp

使用带有节点异步的 $.getJSON 到运行带有 jsonp 响应的 node/express 的服务器时,我遇到了一个奇怪的错误。

我使用节点异步迭代数组对服务器进行了两次调用,但是当所有操作完成后,第二个结果具有一些包含第一个值的属性。

奇怪的是服务器端响应正在返回 - 因为返回的属性之一是正确的 - 但另一个属性看起来在第二次调用时被第一次调用的属性覆盖。

在服务器端,我已经对其进行了调试并检查了返回正确结果的 res.jsonp 行,我还使用一些控制台日志记录服务器端对其进行了检查。

下面的代码 - TLDR 结果如下:

这是代码的简化版本(删除了很​​多垃圾,但逻辑保持不变):

我已经尝试使用异步系列、异步并行以及 promise 样式 getJSON 和回调样式 getJSON - 都显示相同的错误。

可能是我的客户端代码,或者我正在对服务器端 jsonp 做一些愚蠢的事情。

服务器端,我建立数据然后去

有什么想法吗?

0 投票
1 回答
2085 浏览

node.js - 在异步瀑布中嵌套异步 api 调用

我正在使用异步瀑布进行两个 API 调用。第二个调用依赖于第一个调用的数据,因此第一个调用在第二个调用开始之前完成执行是很重要的。但是,在下面的代码片段中,第二个函数总是在第一个函数完成之前启动,因此它永远不会获取数据。我该如何解决这个问题?谢谢!

更新 1 我错误地将回调作为请求的第三个参数。我已经解决了这个问题,但代码仍然没有按预期运行。谢谢

0 投票
1 回答
157 浏览

javascript - 在 Node 中同步 http 请求

我是节点的新手,我正在尝试找出回调和它的异步性质。
我有这种功能:

鉴于大多数节点开发人员都使用这个或类似的解决方案,我还试图了解如何使用Async 库。

如何“阻止”(或等待结果)我的脚本流,直到我从 http 请求中获得结果?可能以异步库为例

谢谢

0 投票
1 回答
240 浏览

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参数是可选的。

0 投票
2 回答
1838 浏览

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)之后完成执行?

0 投票
1 回答
160 浏览

node.js - 如何处理节点 http 请求

我试图了解如何等待 http 请求在节点中完成。我想发出两个 http 请求,并在 http 请求完成后调用的函数中使用结果。

我正在使用异步请求,并且一直在使用 async.series,如下所示:

控制台输出显示:

我想等到每个http请求函数完成后,再进行下一部分代码。我如何实现这一目标?

0 投票
0 回答
226 浏览

javascript - 如何从 node.js 的 async.waterfall 链中调用外部函数

我在尝试使用 modbus-tcp 时遇到问题async.waterfall 基本上我必须先完成一个 modbus 读取,然后再继续另一个。

client.readInputRegister接受一个参数,我无法找到一种方法来按顺序将响应返回到瀑布链。

0 投票
2 回答
368 浏览

node.js - 如何在 Node 的异步 eachSeries 中正确获取结果数组?

我正在尝试使用 asynceachSeries来编写每个类别的报告计数。类别和报告并存储在单独的集合中,然后我首先获取可用类别并对它们执行计数搜索。

这是我的代码:

问题是我什么也没收到,console.log那里输出实际数字,我做错了什么?

0 投票
1 回答
600 浏览

javascript - 在 node.js 中迭代大量异步调用/结果(使用 ES6 / async / bluebird / generators)?

我正在 node.js 中编写一个实用程序,它必须每晚处理和连接大量文件。在同步伪代码中,它看起来像这样(为了清楚起见,省略了 try / catch):

但是,在我使用的库中,popNext()实际上是一个节点样式的异步方法,看起来像这样:popNext(callback).

由于我是从头开始编写中间件,因此我可以使用--harmony(例如generators)、asyncbluebird

理想情况下,我更喜欢类似的东西:

但是,我对其他“标准”解决方案持开放态度。我想知道这个问题最简洁的解决方案是什么?

编辑同时产生所有(在常规for循环中)可能无法解决我的问题,因为我们谈论的是100k,并且对于我必须打开和读取文件的每个项目,所以我可能会用完文件描述符.

0 投票
0 回答
163 浏览

javascript - Async.each 最终回调在延迟承诺回调函数中时不会触发

根据我迄今为止的研究,我相信我正确使用了 async.each 。底部函数 addToPlaylist 调用顶部函数 getPerformances。我试图弄清楚为什么 addToPlaylist 中的最终回调没有被调用以及如何修复它。谢谢!

问题在这里——如果 cb() 在 then() 中,则不会调用最终回调。如果将 CB 移到 promise 回调之外,则会调用 finalCallback,但当然,它调用得太快了。