先设置返回类型为Observable,再订阅服务。
示例如下:
在服务中:
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';
@Injectable()
export class MyService {
constructor(private http: HttpClient) {}
getData(): Observable {
return this.http.get('/api/data')
.map((res: any) => res.json());
}
}
在组件中:
import { Component } from '@angular/core';
import { MyService } from './my.service';
@Component({
selector: 'my-component',
template: `{{data}}`
})
export class MyComponent {
data: any;
constructor(private myService: MyService) {}
ngOnInit() {
this.myService.getData()
.subscribe(res => {
this.data = res;
console.log(this.data);
},
err => console.error(err),
() => console.log('done'));
}
}