在 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/