Sha*_*yat 9 observable angular
我正在尝试创建计时器,它将每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");
}
}
Run Code Online (Sandbox Code Playgroud)
我使用angular2 RC7,"rxjs":"5.0.0-beta.12"
Lui*_*uiz 22
订阅observable会返回订阅对象
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();
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14500 次 |
最近记录: |