问题标签 [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 投票
3 回答
436 浏览

node.js - 节点异步推送循环

我有一个异步函数,我想在一个范围内为 i 执行。我试过这个:

输出是:

为什么我没有“func 6”???顺便说一句,我想要 1 2 3 4 5 ...

谢谢

0 投票
1 回答
1073 浏览

node.js - nodejs async myMethod 未定义

从异步中调用我的模块自己的方法时出现以下错误。

模块如下PositionReferences

除了声明 : module.exports.RetrieveLatitude,

我也尝试过设置var that = this;和调用 Lat/Long 方法。

为什么这些都不起作用?

0 投票
1 回答
1368 浏览

javascript - javascript 在 async.map 期间删除项目

我正在使用 async.map 遍历数组并在每个项目上执行一些异步函数。在某些情况下,我需要从原始数组中删除该项目,我想知道这是否可能,我尝试使用两个空参数调用回调,

但这不起作用。我试着环顾四周,但在这个特定案例中找不到任何东西。有没有办法做到这一点?谢谢。

编辑:短代码片段

0 投票
2 回答
364 浏览

javascript - 在 async.each 中产生错误

我有以下 JavaScript:

我想测试包含if(err) return callback(err);...的路径

为此,我看到使用 rewire ( https://www.npmjs.com/package/rewire ) 进行依赖注入的唯一可能性。

在我的单元测试中:

然而,“模拟”似乎没有被使用。在我的单元测试中,我从来没有在'Inside mock!'控制台上看到过。并且没有错误。'Original source (loop)''Original source (done)'

我做错什么了吗?我已经将 rewire 用于类似的用例,并且效果很好。还是有其他方法?

0 投票
0 回答
810 浏览

node.js - 异步:无法读取未定义的属性“地图”

我有一个带有 async.map 的函数,它一直工作到地图的回调然后我得到这个错误:

我的日志控制台输出:

我错过了什么?

编辑:调用的函数findSolutionsOneWay

0 投票
1 回答
385 浏览

javascript - 在 Meteor 中管理异步回调

我正在使用 Meteor 1.* 和 Iron Router 1.*。

我在 Meteor 的服务器端使用 Node.js 调用,在 Meteor 方法之外——特别是在服务器端 Iron Router 路由内。

到目前为止,路由内部的部分代码类似于以下内容:

我的问题是,我需要向 fs.write 和 ExternalLibrary 添加更多调用,并进一步使这些调用成为有条件的。

看起来我正在进入回调地狱。

关于回调

我知道 Meteor 使用协程(或纤维,或延续),但我不知道它是如何工作的。在 Meteor 方法中,我们可以选择使用 Meteor.wrapAsync。

我读过一些关于 Node.js Promises 和 Generators 的文章。特别是我正在试用frozeman/q-meteor 库。

问题

将这棵树“压平”并将自己从回调地狱中拯救出来的最佳方法是什么?我想要一个也允许条件方法调用的解决方案。例如,我最终需要在上面的代码示例中添加如下内容:

0 投票
1 回答
6252 浏览

javascript - 使用 node.js 函数 async.retry 确定成功/失败

我正在研究 node.js 模块 async,但是函数 async.retry 有一些问题。

根据其github 文档,该函数将继续尝试该任务,直到它成功或机会用完。但是我的任务如何判断成功或失败?

我尝试了下面的代码:

我希望它运行到count === 1,但它总是打印这个:

那么如何正确使用该功能呢?

0 投票
1 回答
559 浏览

node.js - 在 async.forEachSeries 中引入延迟

我想在迭代器的每个条目被拾取执行之前引入一个延迟。我尝试了 setTimeOut 但它不起作用。

有任何想法吗?

0 投票
1 回答
495 浏览

node.js - Async.series 中的 Nodejs Angularjs Mongoose 查询

我试图向我的数据库添加值,然后使用 mongoose find 检索数据库。添加了值,但 mongoose 查找不返回值。以下是我的代码。

在我的前端,我想输入我的书籍数量,然后根据书籍数量,列表将出现。示例如下:-

上面的代码不起作用,但如果我按 F5 刷新页面。它会给我正确的前端。

感谢帮助

0 投票
2 回答
1154 浏览

javascript - 从 node.js 到外部系统的并行请求增加需要更多时间来响应

我有一个简单的案例,我从我的 node.js 服务器请求不同的上游代理服务器。随着负载的增加,我看到请求需要花费大量时间来执行(尽管从我的上游代理服务器响应所花费的时间在请求中是恒定的)。为了演示这个问题,我编写了一个示例程序,如下所示。当我执行下面的程序时,第一个请求需要118 毫秒才能执行,最后一个请求需要10970 毫秒, 具体取决于您点击的网站(我已将 url 更改为 google,请在您喜欢的网站上试用)。如果您观察到我正在使用异步来并行化我的请求。

问题是,node.js 在并行运行时需要这么多时间来执行请求的原因是什么。为了提供更多有关基础设施设置(centos 6.5)的上下文,我打开了从 1024 到 65535 的端口范围,将 fin_timeout 更改为 15 秒并在 sysctl.conf 中为套接字启用 tw_reuse =1

下面给出更多的上下文是 ruby​​ 中的代码来做同样的事情。我知道我不能像苹果和苹果那样比较这两种语言。但这个想法是显示使用 ruby​​ 依次执行相同请求所需的时间。我没有看到按顺序发出的每个请求的响应时间有任何增加。所以,我怀疑使用节点的并行请求需要更多时间来响应请求(问题不是来自服务器响应,而是来自机器本身发送请求)