我正在尝试在MongoDB
环境中的NodeJS
集合中查找文档。有没有办法做到以下几点?
这不起作用:
var foo = function (id) {
// find document
var document = database.find(id);
// do whatever with the document
...
}
这种方式会创建一个块:
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
...
}
我知道我可以使用回调但是在NodeJS / JavaScript中有一种更简单的“暂停”然后“继续”的方法吗?对不起,我对网络开发还很陌生。
答案 0 :(得分:1)
这是不可能的。如果您担心回调的可读性,可以考虑使用编译为JavaScript的语言。例如LiveScript有所谓的“Backcalls”,它们使代码看起来暂停,但编译成回调函数:
例如:
result <- mongodb.find id
console.log result
汇编为:
mongodb.find(id, function(result){
return console.log(result);
});