问题标签 [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 - 异步并行错误?
在这里,我试图创建一个带有 Async.js 参数的函数数组。
该数组由 RunRequest 的实例组成,这些实例应该设置在 MakeRequest 的循环内,就在我尝试将函数数组传递给 Async 之前。
因此,当我将 request[i] 中的请求传递给 RunRequest 时,它很好,但在 RunRequest 函数内部它是未定义的?
node.js - 使用 expressjs 处理异步瀑布中的错误
我不明白为什么 expressjs 在抛出 async.waterfall 时不处理错误
当我 GET /error 时,expressjs 打印一个不错的错误而没有崩溃服务器但是当我 GET /asyncerror 这是一个经典的抛出,打印在 stdout 上并出现服务器崩溃..
谢谢你的帮助。
javascript - 并非 Async.js 系列中的每个函数都执行
我正在尝试使用Async.js来触发一系列异步函数。下面是我的代码。只有前两个函数执行。系列中的第三个和第四个函数不执行。我已经将思考的功能简化为最基本的可能。但他们仍然没有执行。有人可以告诉我我做错了什么吗?
编辑---正如下面的答案所建议的,我做了前两个适当的功能。然而,现在只执行该系列中的第一个函数。函数 2-4 不会被调用。我认为这段代码肯定还有其他问题。
node.js - 将参数传递给 Node.js 异步瀑布
我需要将一些参数传递给async waterfall()
的初始函数。建议的方法 https://github.com/caolan/async/issues/14对我不起作用,因为我需要将 ExpressJS 函数的响应传递给它
xml - 使用 nodejs async 处理大型 xml 文件(有关系)
我必须处理一个大型 XML 文件(大小约为 25 mb),并将数据组织成文档以导入 MongoDB。
问题是,xml 文档中大约有 5-6 种类型的元素,每一种都有大约 10k 行。
在获取了一个 a 类型的 xml 节点之后,我必须获取它对应的 b、c、d 等类型的元素。
我在节点中尝试做的事情:
- 获取类型 a 的所有行。
- 对于每一行,使用 xpath,找到其对应的相关行,并创建文档。
- 在 mongodb 中插入文档
如果有 10k 行类型 a,则第 2 步运行 10k 次。我试图让它并行运行,这样事情就不会永远持续下去。因此, async.forEach 似乎是完美的解决方案。
async.forEach(rowsA,fetchA);
我的 fetchrelations 函数有点像这样
在我尝试运行它之后,代码中的 console.log 大约每 1.5 秒运行一次,而不是像我预期的那样对每一行并行运行。在过去的两个小时里,我一直在挠头并试图弄清楚这一点,但我不确定我做错了什么。
我不是很擅长node,所以请耐心等待。
javascript - Javascript Async.js Parallel 不适用于 socket.io
我有以下代码块:
module.rpc
是一个通过 . 从服务器获取必要数据的函数socket.io
。现在,最后一个函数(async.parallel
的第二个参数)应该只在给定的 3 个函数回调后才被调用。但是,在模板(EJS)渲染期间,当我尝试访问时groups.data
,有时会收到错误消息:
该代码对我来说似乎非常好,但只是偶尔有效。我已经多次重新加载页面,没有更改底层代码,成功率约为 20%。我完全不知道为什么这里出了问题。我只能猜测该变量的分配被延迟了。所以我尝试使用延迟渲染window.setTimeout
,但无济于事。为什么会这样?我如何解决它?
javascript - 使用 node.js + async 模块从同步回调中创建一个同步循环
流行的 node.js 模块async包括用于集合和控制流的函数,其中一些版本可以并行或串行操作。
但是其中我找不到一种方法来构建一个串联运行的循环。
我正在尝试与此伪代码相同的操作:
- 如果我希望
getLine()
并行调用所有调用,我可以使用async.whilst
. - 如果我想迭代一个数组而不是制作类似 a
for
orwhile
循环的东西,我可以使用async.eachSeries
.
我可以使用什么来获取series
控制流中的行为而不是集合迭代?
javascript - node.js:程序要么意外退出,要么只是挂起
我在 node.js 中编写了一个执行一些网络操作的模块。我写了一个使用这个模块的小脚本(check
下面的变量)。它看起来像这样:
现在这是有趣的事情。当此代码作为mocha
测试的一部分执行时,测试会按预期退出。我看到打印的日志语句并且进程退出。
当代码作为独立节点脚本执行时,会打印日志语句,但进程只是挂起。
当我尝试调试它并使用--debug-brk
和使用启动程序node-inspector
时,它会提前退出!我看那process.on 'exit'
叫。它在模块中的一些内部回调尚未被调用时退出。所以上面的日志语句也没有打印出来。
我现在被卡住了,不确定为什么会这样。有没有人见过类似的行为?
javascript - async.series 和 javascript 变量
我认为我的理解存在根本性的脱节。我一直在阅读回调,并搜索了以下内容可能不起作用的原因,但我可能在错误的地方寻找。我有以下代码:
console.log“测试”似乎没有打印,我已经尝试了很多不同的代码迭代,但是一旦它超出了最里面的循环(users.push 用户),我就不能检索用户的值。我最终得到一个空数组[]。任何人都有任何见解,或者可以指出我的想法哪里出错了?谢谢你。
node.js - 为什么 async.map 函数可以与本机 fs.stat 函数一起使用?
根据文档,第二个参数是:
iterator(item, callback) - 应用于数组中每个项目的函数。
美好的。
迭代器被传递一个回调(err,transformed),一旦它完成一个错误(可以为空)和一个转换的项目,就必须调用它。
我认为这fs.stat
不符合这一点,我会说这不应该工作。
它应该是这样的: