javascript - Node : Passing function specific variables to Async. 并行()

标签 javascript node.js asynchronous

在 Node 中呈现页面之前,我需要完成大量长时间运行的数据库查询。这些查询中的每一个都需要一些自己的变量。有没有一种简单的方法可以将变量传递给 nodejs 中的 async.parallel() 实用程序?

async.parallel([
    queryX(callback, A1, A2, A3),
    queryX(callback, B1, B2, B3),
    queryY(callback, C1, C2, C3),
    queryY(callback, D1, D2, D3),
    queryZ(callback, E1, E2, E3),
    queryZ(callback, F1, F2, F3),
  ], 
  function(err, results) { /*Do Render Stuff with Results*/}
);

最佳答案

在编写函数时,您应该尊重回调作为最后一个参数的 nodejs 约定。这样您就可以使用 Function.bind 来调用您的函数。

var queryx = function(A,B,C,callback){ .... ; callback(err,result) };

async.parallel([queryx.bind(null,A1,B2,A3),...,],callback);

绑定(bind)返回部分应用程序:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind

关于javascript - Node : Passing function specific variables to Async. 并行(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21972710/

相关文章:

c# - 取消由 ASP.NET 启动的任务

javascript - 回调不是异步 echOfSeries 中的函数

javascript - Dojo、dgrid 定义未定义

node.js - 如何在 nodejs 中模拟请求和响应以测试中间件/ Controller ?

node.js - 无法在 dynamodb-local 中创建表 - aws

node.js - Bolt连接,Docker Compose + Neo4j + Node

javascript - 在 AngularJS 中显示加载栏时禁用控件

javascript - 无法从下拉列表中选择值

javascript - 修复两个同名的 AngularJS 指令的最佳方法是什么?

mysql - 如何在node.js中使用mysql创建异步函数