redis/ioredis

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

Fechada

#1.968 aberto em 10 de mar. de 2025

 (7 comentários) (1 reação) (1 responsável)TypeScript (1.069 forks)batch import
help wantedstale

Métricas do repositório

Stars
 (12.302 estrelas)
Métricas de merge de PR
 (Mesclagem média 3d 5h) (5 fundiu PRs em 30d)

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

Guia do colaborador