redis/ioredis

difference Between multi.promise.exec() and multi.exec() in ioredis

已关闭

#1,968 创建于 2025年3月10日

 (7 条评论) (1 个反应) (1 位负责人)TypeScript (1,069 个派生)batch import
help wantedstale

仓库指标

星标
 (12,302 个星标)
PR 合并指标
 (平均合并 3天 5小时) (30 天内合并 5 个 PR)

描述

I am currently using Redis with multi.exec(), but I noticed that the result format differs when using multi.promise.exec().

multi.promise.exec() appears to support Bluebird promises, but the returned result format is different from multi.exec(). I expected both to return the same output, but there seems to be a difference. Since I primarily want to use multi.exec(), I’d like to understand whether this difference is intentional and if there’s a recommended approach to ensure consistency.

Would appreciate any insights on this

const multi = redis.multi();
multi.zrevrank(key, id);
multi.hget(key, id);
const result1 = await multi.promise.exec() // [null, null]

const multi2 = redis.multi();
multi2.zrevrank(key, id);
multi2.hget(key, id);
const result = await multi.exec(); // [[null, null], [null, null]]

贡献者指南