我有一个这样的函数:
private data: MyCustomDataObject;
private getData(): boolean {
let val: boolean = true; // variable declared
this.service.callMethod().subscribe(data => {
this.data = data;
if (data == null) {
val = false; // val declared above is not updating
}
});
return val; // this is still true, should be false
}
为什么 val
没有更新?
最佳答案
这里发生的事情是 subscribe
获取您提供的函数,并在稍后发生某些事件时保留它。当你传递它时,它实际上并没有运行你的函数。因此,getData
函数会继续执行,而不会调用您的回调,因此 val
的值在 getData
返回之前永远不会改变。如果您希望它返回 false
,则需要在传递给 subscribe
的回调之外更改 val
。
关于javascript - Typescript - 更新箭头函数中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50727883/