非阻塞的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); });