MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Verwendung von wait.for mit nodejs und Mongoskin, um die Callback-Hölle zu vermeiden

Ich bin mit CoffeeScript nicht vertraut, bitte korrigieren Sie mich und ich werde diese Antwort bearbeiten.

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

Wie Sie sehen können, verwenden Sie für "getUser", wenn die Methode so einfach ist, besser Ihre Version mit dem Callback.

"wo soll die launchFiber() platziert werden?"

Sie setzen die launchFiber ein, wenn eine Anfrage eintrifft. siehe https://github.com/luciotato/waitfor#proper-use