試圖在angular2中使用setTimeout,我想稍後清除超時。Angular2 setTimeout返回ZoneTask而不是「Number」
但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或什麼是首選使用的setTimeout,然後clearTimeout在Angular2?
嘗試'clearTimeout(this.timeoutId);'沒有第一個參數,或者您可以通過使用'this.timeoutId.data.handleId'獲取id – yurzui
是的,但爲什麼我要獲得ZoneTask?我如何做一個正常的settimeout! – Ajey