微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Javascript 和 firebase:类方法返回未定义的数据

如何解决Javascript 和 firebase:类方法返回未定义的数据

我正在为我的应用制作推荐引擎。我正在制作那个引擎作为一个类。构造函数应该从 firebase 获取所有数据,并在我调用 byGenre 方法时返回数据,但它返回 null。我的班级是这样的:

const db = firebase.database()
class Recomend{
    constructor(){
        db.ref("users").on("value",snapshot=>{
            this.temp = snapshot.val()
            this.data = Object.values(this.temp)//returns all the users value
        })
    }
    byGenre(){
        return this.data//returns undefined
    }
}
这就是我调用方法的方式:

const recomend = new Recomend()
const app = express();
app.use(cors())
console.log(recomend.byGenre())//returns undefined

但是当我 console.log 在 firebase 的回调函数中时,它显示的数据如下:

class Recomend{
    constructor(){
        db.ref("users").on("value",snapshot=>{
            this.temp = snapshot.val()
            this.data = Object.values(this.temp)//returns all the users value
            console.log(this.data)//shows all the data
        })
        
    }
    byGenre(){
        return this.data//returns undefined
    }
}

我是 JS 中面向对象编程的新手,所以我不明白是什么导致了问题

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。