带有redis的节点js没有返回给调用者

Posted

技术标签:

【中文标题】带有redis的节点js没有返回给调用者【英文标题】:Node js with redis not returning to caller 【发布时间】:2016-12-13 07:17:42 【问题描述】:

我是 Node 世界的新手,但有一些回调和 Promises 的信息。

所以只需编写一个小代码来从 Redis 获取数据并将其打印到控制台。

现在下面的代码运行良好,但它永远不会返回它。意味着当我使用 node 命令运行它时,说 test.js 是文件的名称,然后它会执行并返回来自 Redis 服务器的值,但永远不会出现返回提示。请看图片。为什么会这样,我们必须做些什么才能让它返回。

var redis = require("redis");
var client = redis.createClient(6379, "localhost");
var Promise = require("bluebird");
client.get("key1", function(err, result)
  if(err)
    throw err;
  console.log(result);
);

【问题讨论】:

因为 redis 客户端必须保持与服务器的连接,因此绑定到一些事件侦听器。这可以防止进程退出。 那我怎么和其他服务一起使用,假设我想在redis里放一些key,又得回来。我该怎么做? 【参考方案1】:

您可以关闭该进程。检查是否必须先关闭 redis 连接。

client.get("key1", function(err, result)
  if(err)
    throw err;
  console.log(result);
  process.exit(0);
);

【讨论】:

client.quit() 应该就足够了。

以上是关于带有redis的节点js没有返回给调用者的主要内容,如果未能解决你的问题,请参考以下文章

jQuery Ajax:返回值给调用者?

批处理文件:返回给调用者?

接口项目servlet的一种处理方式,将异常返回给调用者我

如何在新线程上运行任务并立即返回给调用者?

如何将一个批处理文件中的值返回给调用者批处理文件

Python(65)_写函数,判断用户传入列表的长度,若大于2,则仅保留前两个长度的内容,并将其返回给调用者