nodejs node ioredis hkeys clientes node.js redis promise

node.js - ioredis - use node-redis con node 8 util.promisify



scala redis (1)

nodo -v: 8.1.2

Uso redis client node_redis con el nodo 8 util.promisify, no blurbird.

la devolución de llamada redis.get está bien, pero promisifica el tipo de mensaje de error de obtención

TypeError: no se puede leer la propiedad ''internal_send_command'' de undefined
en get (D: / Github / redis-test / node_modules / redis / lib / commands.js: 62: 24)
en get (internal / util.js: 229: 26)
en D: / Github / redis-test / app.js: 23: 27
en el objeto. (D: / Github / redis-test / app.js: 31: 3)
en Module._compile (module.js: 569: 30)
en Object.Module._extensions..js (module.js: 580: 10)
en Module.load (module.js: 503: 32)
en tryModuleLoad (module.js: 466: 12)
en Function.Module._load (module.js: 458: 3)
en Function.Module.runMain (module.js: 605: 10)

mi código de prueba

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


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

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

lo resolvió por mi :)