gpt4 book ai didi

Angular 2 : create and destroy timer

转载 作者:太空狗 更新时间:2023-10-29 17:08:31 26 4
gpt4 key购买 nike

我正在尝试创建计时器,它将每 5 秒发送一次 GET 请求,我设法做到了,但我注意到如果我移动到不同的页面(路由),计时器仍在运行,所以我尝试添加 ngOnDestroy,但我没有“退订”方法

import {Component, OnInit, OnDestroy} from '@angular/core';
import {Observable} from 'rxjs/Rx';

@Component({
templateUrl: 'app/pages/CurrentRuns/currentruns.component.html'
})




export class CurrentRunsComponent implements OnInit, OnDestroy {
private timer;
ticks=0;


ngOnInit() {
this.timer = Observable.timer(2000,5000);
this.timer.subscribe(t => this.tickerFunc(t));
}
tickerFunc(tick){
console.log(this);
this.ticks = tick
}

ngOnDestroy(){
console.log("Destroy timer");

}
}

我正在使用 angular2 RC7, "rxjs": "5.0.0-beta.12"

最佳答案

订阅一个可观察对象返回一个订阅对象

import {Component, OnInit, OnDestroy} from '@angular/core';
import { Observable, Subscription } from 'rxjs/Rx';

@Component({
templateUrl: 'app/pages/CurrentRuns/currentruns.component.html'
})
export class CurrentRunsComponent implements OnInit, OnDestroy {
ticks = 0;
private timer;
// Subscription object
private sub: Subscription;

ngOnInit() {
this.timer = Observable.timer(2000,5000);
// subscribing to a observable returns a subscription object
this.sub = this.timer.subscribe(t => this.tickerFunc(t));
}
tickerFunc(tick){
console.log(this);
this.ticks = tick
}

ngOnDestroy(){
console.log("Destroy timer");
// unsubscribe here
this.sub.unsubscribe();

}
}

关于 Angular 2 : create and destroy timer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39557845/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com