node.js - 带有 Typescript 的 NodeJS 中的“TypeError:不是函数”
问题描述
我在带有 TypeScript 的 nodeJS 中遇到了这个问题。我已经测试过没有这个和有这个。:
this.funktion2(); ^
类型错误:this.funktion2 不是函数
功能1();//案例#两个 ^
ReferenceError: funktion1 未定义
这是我的示例代码:
class App
{
constructor()
{
setTimeout(function(){
console.log('Hier 1');
this.funktion2();
}, 2500);
//I have only one of this cases in use
this.funktion1(); //case #one
funktion1(); //case #two
}
function funktion1()
{
console.log('Funktion 1');
}
funktion2()
{
console.log('Funktion 2');
}
}
new App();
我该如何修复它或为它提供解决方法?
感谢所有帮助。
解决方案
尝试以下示例
class App {
constructor() {
setTimeout(() => {
console.log('Hier 1');
this.funktion2();
}, 2500);
this.funktion1(); //case #one
}
funktion1() {
console.log('Funktion 1');
}
funktion2(){
console.log('Funktion 2');
}
}
new App();
另一件事是,setTimeout
如果您使用函数,则无法访问类 context this
。该函数创建一个新的上下文,所以一个新的this
setTimeout(function(){
console.log('Hier 1');
this.funktion2();
}, 2500);
要访问当前上下文:
setTimeout(() => {
console.log('Hier 1');
this.funktion2();
}, 2500);
推荐阅读
- mono - 如何重新初始化 MONO.mono_load_runtime_and_bcl
- mysql - 相关子查询 MySQL
- elasticsearch - 无法初始化日志记录驱动程序:拨号 tcp 127.0.0.1:1514:连接:连接被拒绝
- javascript - C# .NET 5.0 中的 Javascript“事件源”
- error-handling - Snoar 说:可能会抛出“NullPointerException”;“getFieldError()”可以返回 null
- node.js - Firebase 函数不会读取 Firestore 上的文档
- r - 重命名多ggboxplot中的因子变量
- javascript - React Leaflet - TileLayer 首次加载时不渲染
- python - 查找 Contour opencv 时缺少部分轮廓(受白色背景、文档扫描仪影响)
- reactjs - react-select-search 不允许我选择多个值