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