1
我想退訂可觀察到的和我看到下面的錯誤:subscription.subscribe和退訂不是一個函數
[ts] Property 'unsubscribe' does not exist on type 'Observable<number>'. Did you mean 'subscribe'?
這個錯誤與代碼:this.subscription.unsubscribe();
這裏是整個文件:
import { Component, Input, OnInit } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { IntervalObservable } from 'rxjs/observable/IntervalObservable';
import 'rxjs/add/observable/interval';
import 'rxjs/add/observable/timer';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.sass']
})
export class AppComponent implements OnInit {
public counting: boolean;
public triggerBtnText = 'GO!';
public subscription: Observable<number>;
@Input() count = 0;
constructor() {}
ngOnInit() {
this.counting = false;
}
toggleStopwatch(): any {
if (this.counting === false) {
this.counting = true;
this.triggerBtnText = 'STOP';
this.updateCount()
} else {
this.counting = false;
this.triggerBtnText = 'GO!';
this.subscription.unsubscribe();
}
}
updateCount() {
this.subscription = Observable.interval(1000);
this.subscription.subscribe(this.counter);
}
public counter(value) {
this.count = value;
console.log(value);
}
resetCount() {
this.count = 0;
}
}
這裏一個簡單的項目中,也可以是泰斯特d:https://bitbucket.org/wtkd/learning-rxjs/branch/moving-to-ng
發佈確切且完整的異常堆棧跟蹤。但是,您選擇輸入任何類型的訂閱,從而消除TypeScript將爲您執行的所有類型檢查,並非訂閱。這是一個可觀察的。 Observable中沒有取消訂閱方法。不要使用任何。爲您的變量提供適當的類型,並且TypeScript將在構建時發現您的編程錯誤。這是TypeScript的重點。 –
我不記得確切,但有Observable.interval和Angular需要使用'import {IntervalObservable} from'rxjs/observable/IntervalObservable';' – rjustin
@ JBNizet堆棧跟蹤已添加,TY爲打字稿提示,你知道嗎我怎樣才能使這些觀察結果能夠被觀察? –