非阻塞的MongoDB + NodeJS

我正在尝试在NodeJS环境中的MongoDB集合中find文档。 有什么办法可以做到以下几点?

这不工作:

 var foo = function (id) { // find document var document = database.find(id); // do whatever with the document ... } 

这样就创build了一个块:

 var foo = function (id) { // find document var document = database.find(id); while (!database.find.done) { //wait } // do whatever with the document ... } 

我想做的事 :

 var foo = function (id) { // find document var document = database.find(id); // pause out of execution flow // continue after find is finished // do whatever with the document ... } 

我知道我可以使用callback,但有一个简单的方法,只是在NodeJS / JavaScript中“暂停”,然后“继续”? 对不起,我对web开发还很陌生。

这不可能。 如果您担心callback的可读性,可以考虑使用编译为JavaScript的语言。 例如LiveScript有所谓的“Backcalls”,它们使代码看起来暂停,但编译为callback函数:

例如:

 result <- mongodb.find id console.log result 

编译为:

 mongodb.find(id, function(result){ return console.log(result); });