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

节点-v:8.1.2

我使用redis客户端node_redis与节点8 util.promisify,没有blurbird。

callbackredis.get是好的,但promisifytypes获取错误消息

TypeError:无法读取未定义的属性'internal_send_command'
get(D:\ Github \ redis-test \ node_modules \ redis \ lib \ commands.js:62:24)
在get(internal / util.js:229:26)
在D:\ Github \ redis-test \ app.js:23:27
在对象。 (d:\ Github上\ redis的testing\ app.js:31:3)
在Module._compile(module.js:569:30)
在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)

我的testing代码

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);

为我解决:)