【问题标题】:Make synchronous orchestrate.io queries进行同步 orchestrate.io 查询
【发布时间】:2016-06-02 13:56:12
【问题描述】:

我刚开始使用 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:回调对于我实际拥有的代码实际上不起作用,因此甚至无需尝试。

【问题讨论】:

  • 反对票的理由?
  • “回调对于我实际拥有的代码实际上不起作用,所以甚至不需要尝试。”嗯,这是唯一要尝试的事情。你不能让异步函数神奇地同步。

标签: javascript node.js asynchronous synchronization orchestrate


【解决方案1】:

Node.js 的设计使得所有 I/O 都以异步方式完成。如果您编写的代码期望同步执行数据库调用,则需要重构以使其适合 Node.js 的非阻塞模型。

【讨论】:

  • 感谢您找到我的 SO 问题 ;)
猜你喜欢
  • 2020-07-08
  • 2015-09-04
  • 2011-09-29
  • 2017-02-17
  • 1970-01-01
  • 2013-06-15
  • 2018-08-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多