MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Utilizzo di wait.for con nodejs e mongoskin per evitare l'inferno di callback

Non ho familiarità con CoffeeScript, per favore correggimi e modificherò questa risposta.

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

Come puoi vedere, per "getUser", se il metodo è così semplice, è meglio usare la tua versione, con la callback.

"dove mettere launchFiber()?"

metti launchFiber quando arriva una richiesta. vedi https://github.com/luciotato/waitfor#proper-use