Redis Client del 函数未在 for 循环中调用



我一直在尝试在for循环中调用redisClient.del函数,但该函数没有返回任何状态。

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; });
};

执行期间没有打印控制台.log语句

您是否尝试检查 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
}

最新更新