我一直试图在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 - Redis Client del函数未在for循环中调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54002236/