【发布时间】:2019-03-29 05:05:44
【问题描述】:
我有一个 subscribe 语句,我正在尝试调试它,但是当我在 VS Code 中单步执行时,'this' 在语句中始终是未定义的。在这种情况下,“this.dataLoaded”是未定义的。调试时如何让它不被定义?
this.router.events
.filter(event => (event instanceof NavigationEnd))
.subscribe((routeData: any) => {
if(!this.dataLoaded){
...
}
});
【问题讨论】:
-
你能展示周围的代码,或者链接到stackblitz的完整解决方案吗?这里没什么可做的。
-
很可能在编译过程中被改写为
_this或类似的东西。查看调试界面的“Locals”或“Scope”部分并查找范围内的其他项目。 -
嗨 Terrance 是正常的,因为你在 this 这是事件而不是全局范围 this 中,尝试 this const me = this ,在 this.router 之外,然后 !me.dataLoaded
-
@AmericoArvani 没有本地
this,因为subscribe正在使用箭头函数。 -
更正本地 this 仅在调试时未定义。如果代码只是运行,它工作正常。我只需要知道是否有一种方法可以在调试时在订阅中看到本地“this”。 @Daniel Giminez 没有周围的代码。这可能是一天的面试问题
标签: angular typescript visual-studio-code