javascript - 未在 for 循环内调用 Redis Client del 函数

标签 javascript node.js redis

我一直在尝试在 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/

相关文章:

node.js - 你如何在redis中使用lua将可用结果返回给nodejs

java - 用两个地理位置坐标点创建一个框

html - 将 session 中的数据插入到 vue-component

ruby-on-rails - 在resque队列中查找特定作业

c# - Redis 声明标记为 DataContract 的类不可序列化?

html - : express + jade/ejs + html5 + css + websockets 的逻辑是什么

javascript - javascript中的私有(private)静态函数

javascript - 在 jQuery 插件中引用时使用哪个 - $(obj) vs obj

javascript - 如何防止swf重定向父html?

javascript - ember-simple-auth 的 Ember cli 错误