client.pop('games:wait')
client.hgetall('games:wait:' + token)
client.hgetall('account:' + player1)
Эти строки уже возвращают
Promise, исходя из вашего примера.
Поэтому лучше писать так:
client.pop('games:wait')
.then((token) => client.hgetall('games:wait:' + token))
.then(({gameInfo: player1}) => client.hgetall('account:' + player1)
.then((accountInfo) => console.log(accountInfo))
.catch((error) => console.error(error));
Такой код выглядит просто и чудесно. Иначе вы пишите стилем "collback hell", вкладывая промисы друг в друга, убивая весь их смысл. Он были как раз придуманы ради того, что бы сделать ваш код в вопросе, таким, который я привёл в примере.