node -v: 8.1.2
Я использую redis client node_redis с node 8 util.promisify, без blurbird.
callback redis.get в порядке, но обещание типа get get
TypeError: Не удается прочитать свойство 'internal_send_command' из undefined
at get (D:\Github\redis-test\node_modules\redis\lib\commands.js: 62: 24)
при получении (internal/util.js: 229: 26)
в D:\Github\redis-test\app.js: 23: 27
в объекте. (D:\Github\Redis-тест\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)
мой тестовый код
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();
})()