我一直在尝试在 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; });
};
执行过程中没有打印console.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
}
关于javascript - 未在 for 循环内调用 Redis Client del 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54002236/