我想在Angular2中使用setTimeout函数,并且我希望稍后能够清除这个定时器。
但是Angular2返回的是一个"ZoneTask"对象,而不是一个数字。
constructor() {
this.name = 'Angular2'
this.timeoutId = setTimeout(() => {
console.log('hello');
}, 2000);
console.log("timeout ID---", this.timeoutId); // Output - ZoneTask {_zone: Zone, runCount: 0, _zoneDelegates: Array[1], _state: "scheduled", type: "macroTask"…}_state: "notScheduled"_zone: Zone_zoneDelegates: nullcallback: function () {cancelFn: nulldata: Objectinvoke: function () {runCount: 0scheduleFn: function scheduleTask(task) {source: "setTimeout"state: (...)type: "macroTask"zone: (...)__proto__: ZoneTask app.ts:24
}
我该如何使用普通的setTimeout函数?或者在Angular2中,有什么更好的方式来使用setTimeout以及clearTimeout呢?
clearTimeout(this.timeoutId);
而不带第一个参数,或者您可以通过使用this.timeoutId.data.handleId
获取 id。 - yurzui