async.eachLimit(rowset.rows, 200, storeRow, postProcessingFunction);
function storeRow(row, cb) {...}
如何将额外的参数传递给storeRow()
?
这样的事情:
async.eachLimit(rowset.rows, 200, storeRow, rowset.param, postProcessingFunction);
function storeRow(row, param, cb) {...}
答案 0 :(得分:1)
你可能不需要这样做。相反,你可以这样做:
function foo(param) {
async.eachLimit(rowset, 200, storeRow, postProcessingFunction);
function storeRow(row, cb) { /* this code uses param */ }
}
答案 1 :(得分:0)
使用Function.bind创建一个“curried”函数。
function storeRow(propertyFromRowset, row, cb){ /* ... */ };
async.eachLimit(
rowset.rows,
200,
storeRow.bind(null,rowset.property),
postProcessingFunction
);
有关理论的信息,请参阅Wikipedia:Currying;有关如何在Javascript中理解函数的详细信息,请参阅Function.prototype.bind。