redis/ioredis

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

Fermée

#1 968 ouverte le 10 mars 2025

 (7 commentaires) (1 réaction) (1 personne assignée)TypeScript (1 069 forks)batch import
help wantedstale

Métriques du dépôt

Stars
 (12 302 étoiles)
Métriques de merge PR
 (Merge moyen 3j 5h) (5 PRs mergées en 30 j)

Description

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

Guide contributeur