redis/ioredis

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

Chiusa

#1968 aperta il 10 mar 2025

 (7 commenti) (1 reazione) (1 assegnatario)TypeScript (1069 fork)batch import
help wantedstale

Metriche repository

Star
 (12.302 stelle)
Metriche merge PR
 (Merge medio 3g 5h) (5 PR mergiate in 30 g)

Descrizione

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]]

Guida contributor