gpt4 book ai didi

javascript - typescript :如何访问 super 。回调里面?

转载 作者:行者123 更新时间:2023-11-30 21:03:27 25 4
gpt4 key购买 nike

我尝试从回调内部的扩展类访问方法:

Model.findOne( { _id: id }, function( err, rec ){
super.handleFind( err, rec );
});

当我编译我的 Typescript 时,我看到以下错误:

error TS2660: 'super' can only be referenced in members of derived classes or object literal expressions.

然后当我运行 JavaScript 时,我得到:

TypeError: Cannot read property 'call' of undefined

如果 - 在回调之前 - 我做了类似 let fct = super.handleFind; 的事情,它似乎有效,但是 this 在 handleFind() 内部未定义 - 并且我需要 this 上下文。

最佳答案

假设 handleFile 是在父类中定义的,那么它将被您的子类继承,除非您在子类中重写 handleFile 并且您想使用该实现handleFile 来自父类(super class),然后您可以使用 this.handleFile 调用它。

第二个问题是,如果您想保留 this 上下文(让它指向你子类的当前实例),改用箭头函数,所以把你的函数改成这个

 // Use arrow function to make 'this' point to the current instance of the
// enclosing class
Model.findOne( { _id: id }, ( err, rec ) => {
super.handleFind( err, rec );
});

关于javascript - typescript :如何访问 super 。回调里面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46879359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com