我正在尝试获取一个全局对象来修改由其自己的方法之一初始化的回调函数中的一个自己的变量。回调似乎有效,但在测试全局变量时似乎没有修改变量。
为什么全局对象没有被修改?对全局对象的更改是否保留在某种暂存区域中,等待回调函数完成?
.then((authState) => {...
答案 0 :(得分:4)
问题在于setTimeout
创建了自己的this
。解决方案可能如下所示:
start_timer(ptr_callback_function) {
// savig this that your need
const self = this;
setTimeout(function() {
// use needed context
self.timer_finished = true;
ptr_callback_function();
}, 1000);
}
另一种选择是使用箭头功能:
start_timer(ptr_callback_function) {
setTimeout(() => {
this.timer_finished = true;
ptr_callback_function();
}, 1000);
}