我有一个服务,比如 MyService,它的目的只是玩 rxjs observables:
import { Injectable } from '@angular/core'
import { Observable } from 'rxjs';
@Injectable()
export class MyService {
private mydatas: any[] = [{
id: 1,
name: "My first"
},
{
id: 2,
name: "My second"
},
{
id: 3,
name: "My third"
}];
public getMys(): any {
const myObservable = new Observable((observer) => {
setTimeout(() => {
observer.next(this.mydatas);
}, 1000);
setTimeout(() => {
observer.error("I AM AN ERRROR!!!")
}, 2000);
setTimeout(() => {
observer.complete();
}, 3000);
return myObservable;
});
}
}
它被一个组件使用:
import { Component, OnInit } from '@angular/core';
import { MyService } from '../shared/my.service';
@Component({
selector: 'my-list',
templateUrl: './my.component.html',
styleUrls: ['./my.component.scss']
})
export class MyListComponent implements OnInit {
mys: any[] = [];
constructor(private myService: MyService) { }
ngOnInit() {
const myObservable = this.myService.getMys();
myObservable.subscribe(
(mys) => {
this.mys = mys;
},
(err) => {
},
() => {
}
);
}
}
我在带有角度注释 (*ngFor) 的 html 中运行它,当我运行它时,在 Chrome 的控制台中出现以下错误:
错误类型错误:无法读取 MyListComponent.push../src/app/my/my-list/my-list.component.ts.MyListComponent.ngOnInit 处未定义的属性“订阅”
我究竟做错了什么?
谢谢