TimeOut 中的回调函数(箭头)和 class 方法
callback function (arrow) and class method in TimeOut
我想触发 2 个具有唯一超时的函数。
以下工作正常
setTimeout(function() {
function1(); // runs first
function2(); // runs second
}, 1000)
但在我的例子中,我有一个 class 方法和一个回调函数(箭头函数)。
它看起来像这样(最小化):
class Timer {
constructor(callback) {
this.active = false;
this.callback = callback;
}
cancel() {
this.active = false;
}
set() {
this.active = true;
this.timeOut = setTimeout( function() {
this.cancel();
this.callback; // HERE is my problem. doesn't run, not casted as a function
}, 1000)
}
我收到以下错误 Expected an assignment or function call and instead saw an expression
。
有什么技巧可以解决这个问题吗?
你不是在调用回调函数,你也可以在调用前添加类型检查。
set() {
this.active = true;
this.timeOut = setTimeout(() => {
this.cancel();
typeof this.callback === 'function' && this.callback();
}, 1000)
}
我想触发 2 个具有唯一超时的函数。
以下工作正常
setTimeout(function() {
function1(); // runs first
function2(); // runs second
}, 1000)
但在我的例子中,我有一个 class 方法和一个回调函数(箭头函数)。
它看起来像这样(最小化):
class Timer {
constructor(callback) {
this.active = false;
this.callback = callback;
}
cancel() {
this.active = false;
}
set() {
this.active = true;
this.timeOut = setTimeout( function() {
this.cancel();
this.callback; // HERE is my problem. doesn't run, not casted as a function
}, 1000)
}
我收到以下错误 Expected an assignment or function call and instead saw an expression
。
有什么技巧可以解决这个问题吗?
你不是在调用回调函数,你也可以在调用前添加类型检查。
set() {
this.active = true;
this.timeOut = setTimeout(() => {
this.cancel();
typeof this.callback === 'function' && this.callback();
}, 1000)
}