我刚刚开始使用orchestrate.io作为我的数据库并使用NodeJS client。
我的程序非常简单,但由于查询是异步运行的,因此行为不正常。
代码:
var db = require('orchestrate')("xxxxxx");
db.get('bar', 'foo')
.then(function (res) {
console.log("I got a response!");
})
.fail(function (err) {
console.log("I failed to get a response");
});
console.log("I should have data by now..");
输出:
I should have data by now..
I got a response!
我想拥有什么:
I got a response!
I should have data by now..
这只是我编写的一些代码来说明这个问题,我的实际代码要复杂得多,而且查询是在一个登录函数中,最终返回false
(每个函数的末尾),然后才能完成查询将返回true
而不是破坏我的登录系统。唯一的解决方案是以某种方式使查询同步,但我在文档中看不到任何触及的内容(如果我错过了,请指出它们。)
注意:我一般都是非常对nodejs和javascript的新手。
注2:回调对我实际拥有的代码不起作用,所以不需要尝试。
答案 0 :(得分:0)
Node.js的设计使得所有I / O都以异步方式完成。如果您编写的代码需要同步执行数据库调用,则需要重构以使其适合Node.js的非阻塞模型。