node.js redis promisify with.multi或.batch

k5ifujac  于 2021-06-10  发布在  Redis
关注(0)|答案(0)|浏览(423)

使用npm模块redis,我对单个命令使用utils promisify没有问题。

  1. const { promisify } = require("util");
  2. const redis = require("redis");
  3. const client = redis.createClient();
  4. const hmgetAsync = promisify(client.hmget).bind(client),

现在我想能够使用.multi和.batch方法。
下面是我的一个助手函数的示例,它使用.batch而不使用promisify和non命令的promisify版本。

  1. const getData = async (ids) => {
  2. const batch = client.batch();
  3. ids.forEach(id => {
  4. batch.hgetall(id)
  5. });
  6. return new Promise((resolve, reject) => {
  7. batch.exec((err, replies) => {
  8. if (err) {
  9. reject(err);
  10. }
  11. const data = replies
  12. // missing keys require filtering
  13. .filter(it => !!it)
  14. .map(dataPoint => _toDataPoint(dataPoint));
  15. resolve(data);
  16. })
  17. })
  18. };

工作没有问题,但我很好奇是否有可能使用promisify与.multi或.batch
非常感谢,

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题