问题标签 [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.
node.js - 节点异步推送循环
我有一个异步函数,我想在一个范围内为 i 执行。我试过这个:
输出是:
为什么我没有“func 6”???顺便说一句,我想要 1 2 3 4 5 ...
谢谢
node.js - nodejs async myMethod 未定义
从异步中调用我的模块自己的方法时出现以下错误。
模块如下PositionReferences
:
除了声明 : module.exports.RetrieveLatitude
,
我也尝试过设置var that = this;
和调用 Lat/Long 方法。
为什么这些都不起作用?
javascript - javascript 在 async.map 期间删除项目
我正在使用 async.map 遍历数组并在每个项目上执行一些异步函数。在某些情况下,我需要从原始数组中删除该项目,我想知道这是否可能,我尝试使用两个空参数调用回调,
但这不起作用。我试着环顾四周,但在这个特定案例中找不到任何东西。有没有办法做到这一点?谢谢。
编辑:短代码片段
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 用于类似的用例,并且效果很好。还是有其他方法?
node.js - 异步:无法读取未定义的属性“地图”
我有一个带有 async.map 的函数,它一直工作到地图的回调然后我得到这个错误:
我的日志控制台输出:
我错过了什么?
编辑:调用的函数findSolutionsOneWay
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 库。
问题
将这棵树“压平”并将自己从回调地狱中拯救出来的最佳方法是什么?我想要一个也允许条件方法调用的解决方案。例如,我最终需要在上面的代码示例中添加如下内容:
javascript - 使用 node.js 函数 async.retry 确定成功/失败
我正在研究 node.js 模块 async,但是函数 async.retry 有一些问题。
根据其github 文档,该函数将继续尝试该任务,直到它成功或机会用完。但是我的任务如何判断成功或失败?
我尝试了下面的代码:
我希望它运行到count === 1
,但它总是打印这个:
那么如何正确使用该功能呢?
node.js - 在 async.forEachSeries 中引入延迟
我想在迭代器的每个条目被拾取执行之前引入一个延迟。我尝试了 setTimeOut 但它不起作用。
有任何想法吗?
node.js - Async.series 中的 Nodejs Angularjs Mongoose 查询
我试图向我的数据库添加值,然后使用 mongoose find 检索数据库。添加了值,但 mongoose 查找不返回值。以下是我的代码。
在我的前端,我想输入我的书籍数量,然后根据书籍数量,列表将出现。示例如下:-
上面的代码不起作用,但如果我按 F5 刷新页面。它会给我正确的前端。
感谢帮助
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 依次执行相同请求所需的时间。我没有看到按顺序发出的每个请求的响应时间有任何增加。所以,我怀疑使用节点的并行请求需要更多时间来响应请求(问题不是来自服务器响应,而是来自机器本身发送请求)