我试着理解Angular 4中的Observable。 我正在观看有关它的视频,我想创建我的第一个Observable,但在我的IDE中出错:
通用类型观察者需要1种类型的参数
我的代码:
import { Component, OnInit } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import 'rxjs/Rx';
import { Observer } from 'rxjs/Observer';
@Component({
selector: 'app-home',
templateUrl: './home.component.html',
styleUrls: ['./home.component.css']
})
export class HomeComponent implements OnInit {
constructor() { }
ngOnInit() {
const myObservable = Observable.create((observer: Observer) => {
setTimeout(() => {
observer.next('first package');
}, 2000);
});
}
}
我想我应该添加这样的通用类型:Observable<any>
,但在我看过作者的视频中不添加任何泛型并且它可以正常工作。
谁能解释我为什么?
答案 0 :(得分:2)
您的错误正在告诉您该做什么。通用类型Observer需要1种类型的参数。您只需要传递用于Observer的数据类型。在这种情况下,它是一个字符串'first package'。因此,在<button type="button" class="button" id="btn">
<div class="like">Like</div>
<div style="display: none" class="like">Liked</div>
<div class="count" id="current"> 1 </div>
<div style="display: none" class="count" id="clicked"> </div>
</button>
$('#btn').click(function() {
$('#btn #clicked').html(parseInt($('#current').text()) + 1);
$('#btn .like').toggle();
$('#btn .count').toggle();
})
方法中,将观察者数据类型设置为如下字符串:
.create()