使用 npm 模块“redis”,我对单个命令使用 utils promisify 没有问题。
const { promisify } = require("util");
const redis = require("redis");
const client = redis.createClient();
const hmgetAsync = promisify(client.hmget).bind(client),
现在我希望能够使用 .multi 和 .batch 方法。
这是我的一个辅助函数的示例,它使用 .batch 而不使用 promisify 和非 promisify 版本的命令。
const getData = async (ids) => {
const batch = client.batch();
ids.forEach(id => {
batch.hgetall(id)
});
return new Promise((resolve, reject) => {
batch.exec((err, replies) => {
if (err) {
reject(err);
}
const data = replies
// missing keys require filtering
.filter(it => !!it)
.map(dataPoint => _toDataPoint(dataPoint));
resolve(data);
})
})
};
没问题,但我很好奇是否可以将 promisify 与 .multi 或 .batch 一起使用
非常感谢,