我正在使用异步库(https://github.com/caolan/async) 尝试使用mongoskin(https://github.com/guileen/node-mongoskin)
执行多个数据库异步查询的节点上问题在于使用像这样的地图功能
app.post '/events', (req, res) ->
storage.events.getByUser req.session.authId, (events) ->
async.map events, storage.codes.getCountByEvent, (err, results) ->
res.send results
它将@
绑定到getCountByEvent
函数的全局命名空间,是否有任何具有异步库经验的人能够就解决此问题的最佳方法向我提供指导?
以下是storage.codes
实施
class Codes
constructor: (db) ->
db.bind 'codes',
getCountByEvent: (event, callback) ->
@.find(event: event._id).toArray (err, res) ->
callback res.length
return db.codes
exports.Codes = Codes
在getCountByEvent
之外调用async.map
可以正常使用
提前致谢
答案 0 :(得分:2)
您可以创建绑定到getCountByEvent
对象的storage.codes
版本:
async.map events, storage.codes.getCountByEvent.bind(storage.codes), ...