Redis Client del функция не вызывается внутри цикла for - PullRequest
0 голосов
/ 02 января 2019

Я пытался вызвать функцию redisClient.del внутри цикла for, и функция не возвращает никакого состояния.

studentSchema.methods.generateAuthToken = function () {
    let admin = this;
    let access = 'student';
    let token = jwt.sign({ _id: student._id.toHexString(), access }, HRCSECRET).toString();
    student.tokens.forEach(element => {
        console.log(element.token);
        redisClient.del(element.token, (err, result) => {
            if(err){
                console.log(err);
            }
            else{
                console.log(result);
            }
        })
    });
    student.tokens = [{ access, token }];
    return student.save().then(() => { return token; });
};

Нет оператора console.log, напечатанного во время выполнения

1 Ответ

0 голосов
/ 02 января 2019

Вы пытались проверить в Redis-cli, что ваш материал удален?

Просто небольшой рефакторинг ниже

studentSchema.methods.generateAuthToken = async () => {
  // your code before
  const promises = []  
  student.tokens.forEach(element => {
    promises.push(redisClient.del(element.token))
  })
  await Promise.all(promises)
  // your next code
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...