当前位置: 首页 > 面试题库 >

结合使用node-redis和节点8 util.promisify

司徒博容
2023-03-14
问题内容

节点-v:8.1.2

我将redis客户端node_redis与节点8
util.promisify结合使用,没有Blubird。

回调redis.get可以,但是承诺类型获取错误消息

类型错误:无法读取属性’internal_send_command’的未定义
的GET(d:\ Github上\ Redis的测试\ node_modules \ redis的\ LIB \ commands.js:62:24)
在GET(内部/ util.js中:229:26)
在D:\ Github \ redis-test \ app.js:23:27(
位于Object)。(d:\ Github上\ Redis的测试\ app.js:3:31)
在Module._compile(30 module.js:569)
在Object.Module._extensions..js(module.js:580:10)
在Module.load(module.js:503:32)
在tryModuleLoad(module.js:466:12)
在Function.Module._load(module.js:458:3)
在Function.Module.runMain(module.js:605 :10)

我的测试代码

const util = require('util');

var redis = require("redis"),
    client = redis.createClient({
        host: "192.168.99.100",
        port: 32768,
    });

let get = util.promisify(client.get);

(async function () {
    client.set(["aaa", JSON.stringify({
        A: 'a',
        B: 'b',
        C: "C"
    })]);

    client.get("aaa", (err, value) => {
        console.log(`use callback: ${value}`);
    });

    try {
        let value = await get("aaa");
        console.log(`use promisify: ${value}`);
    } catch (e) {
        console.log(`promisify error:`);
        console.log(e);
    }

    client.quit();
})()

问题答案:

改变 let get = util.promisify(client.get);

let get = util.promisify(client.get).bind(client);

为我解决了:)



 类似资料:
  • DOM的概念 节点的概念 Node节点的属性 nodeName,nodeType ownerDocument,nextSibling,previousSibling,parentNode,parentElement textContent,nodeValue childNodes,firstNode,lastChild baseURI Node节点的方法 appendChild(),hasChil

  • 问题内容: 我正在尝试通过node.js将一些syslog数据流式传输到Meteor集合中。它工作正常,但是Meteor客户端的轮询周期大约为10秒,对于我的品味来说,这个周期太长了- 我希望大约1秒。 通过控制台进行客户端集合插入的速度很快,并且所有客户端都在使用DDP,因此可以立即进行更新。但是从服务器端直接进行MongoDB插入将受客户端的轮询周期影响。 因此,目前看来,我只限于使用DDP从

  • 本文向大家介绍redis适合场景八点总结,包括了redis适合场景八点总结的使用技巧和注意事项,需要的朋友参考一下 redis适合什么场景? 1、缓存 缓存现在几乎是所有中大型网站都在用的必杀技,合理的利用缓存不仅能够提升网站访问速度,还能大大降低数据库的压力。Redis提供了键过期功能,也提供了灵活的键淘汰策略,所以,现在Redis用在缓存的场合非常多。 2、排行榜 很多网站都有排行榜应用的,如

  • kubernetes Node 节点包含如下组件: flanneld docker kubelet kube-proxy 使用的变量 本文档用到的变量定义如下: $ # 替换为 kubernetes master 集群任一机器 IP $ export MASTER_IP=10.64.3.7 $ export KUBE_APISERVER="https://${MASTER_IP}:6443" $

  • Kubernetes node节点包含如下组件: Flanneld:参考我之前写的文章Kubernetes基于Flannel的网络配置,之前没有配置TLS,现在需要在service配置文件中增加TLS配置,安装过程请参考上一节安装flannel网络插件。 Docker1.12.5:docker的安装很简单,这里也不说了,但是需要注意docker的配置。 kubelet:直接用二进制文件安装 kub

  • 如果一个前端代码,使用webpack可以 设置路径别名 比如src可以用@代替 使用import 引用 兼容各种文件名 .js .jsx .ts等等 而后端node express的项目就没听说有人用webpack,我知道,以上的东西可以手动在node express项目中进行设置,但是如果有一个类似webpack的工具那就更好了。 请问有类似的工具吗,不想要一个一个找解决方案进行配置啊。就仅仅一