私はredisを掘り下げ、データストレージとしてredisを使用する小さなWebアプリケーションで作業しています(私はそれがredisの意図された目的ではないことを知っていますが、 。。私はNode_Redisを使用しているコマンドを学習し、ちょうど全体のノード上のRedisでの作業Node_Redis Promise.allを使用するときにブール値配列に解決する
はここで私は(Redisの中のすべてを)達成したいものです。 私は彼らの電子メールを使用してユーザーを取得しようとしています
。ここに問題があります: 私はPromise.all呼び出しを受け取りますすべての電子メール(キー)とマップをそれぞれHGETコマンドに渡します。 Promise.allが解決するとき、私はそれがユーザオブジェクトの配列で解決されると期待しますが、それはブール値の配列(つまり[true、true、true])に解決します。ここで
は、私が実際に倍のPromise.allの多くを使用しました/users
router.get("/", (req, res) => {
client.lrange("emails", 0, 1, (err, reply) => {
if (err) return console.log(err);
if (reply) {
Promise.all(
reply.map(email => {
return client.hgetall(email, (err, reply) => {
if (err) return console.log(err);
console.log("reply for hgetall", reply); // this prints a user object correct, but Promise.all still resolves to boolean array :(
return reply;
});
})
)
.then(replies => {
// replies = [true, true, true ...]
res.send(replies);
})
.catch(e => console.log(e));
} else {
res.send([reply, "reply is null"]);
}
});
});
ためのロジックである、と私はRedisのからの応答を記録するとき、それはあまりにも正しいオブジェクトを示していたので、私はかなりよこの時点では混乱している。 Promise.allを取得して、ユーザーオブジェクトの配列に解決するにはどうすればよいですか?