MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Utilisation de wait.for avec nodejs et mongoskin pour éviter l'enfer des rappels

Je ne connais pas CoffeeScript, veuillez me corriger et je modifierai cette réponse.

all: (req,res)->
    var result = wait.forMethod(@em.collection(@collection).find(), "toArray")
    roadmaps = []
    for r in result
        r.user = @getUser(r.user.oid)
        roadmaps.push r
    res.send(roadmaps)



 getUser: (oid)->
    try
      return wait.forMethod(@em.collection('user'),"findOne",{_id:new @objectId(oid)})
    catch(err)
      return undefined

Comme vous pouvez le voir, pour "getUser", si la méthode est aussi simple, vous feriez mieux d'utiliser votre version, avec le rappel.

"où mettre le launchFiber() ?"

vous mettez le launchFiber lorsqu'une demande arrive. voir https://github.com/luciotato/waitfor#proper-use