map
和
subscribe
我的“get”函数
getClients() : Observable<Client[]> {
return this.authService.get('clients')
.map(res => res.json())
.catch((error: any) => Observable.throw(error.json().error || 'Server error'));
};
client service
import { Injectable } from '@angular/core';
import { Client } from '../client/client';
import {Observable} from 'rxjs/Rx';
// Import RxJs required methods
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';
import { Angular2TokenService } from "angular2-token";
@Injectable()
export class ClientService{
constructor(private authToken: Angular2TokenService) {
}
getClients() : Observable<Client[]> {
return this.authToken.get('clients')
.map(res => res.json())
.catch((error: any) => Observable.throw(error.json().error || 'Server error'));
};
}
然后我修改我的组件,使其类似于
constructor(private clientService: ClientService) { }
clients: Client[];
ngOnInit() {
this.clientService.getClients();
}
getClients() : Observable<Client[]> {
return this.clientService.getClients();
}
是吗
.map()
这个
res
根据评论更新
import { Injectable } from '@angular/core';
import { Client } from '../client/client';
import {Observable} from 'rxjs/Rx';
// Import RxJs required methods
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';
import { Angular2TokenService } from "angular2-token";
@Injectable()
export class ClientService{
constructor(private authToken: Angular2TokenService) {
}
getClients() {
this.authToken.get('clients')
.map(res => res.json())
.catch((error: any) => Observable.throw(error.json().error || 'Server error'));
};
}
组成部分
import { Component, Input, OnInit } from '@angular/core';
import { Client } from "./client";
import { Angular2TokenService } from "angular2-token";
import { Observable } from "rxjs/Observable";
import { ClientService } from "../services/client.service";
@Component({
selector: 'app-client',
templateUrl: './client.component.html',
styleUrls: ['./client.component.sass']
})
export class ClientComponent implements OnInit {
constructor(private
// authService: Angular2TokenService
clientService: ClientService
) {
}
clients: Client[];
ngOnInit() {
this.getClients();
}
getClients() : Observable<Client[]> {
this.clientService.getClients()
.subscribe(res => {
console.log(res)
});
}
// getClients(): Observable<Client[]> {
// this.authService.get('clients')
// .map(res => res.json()).subscribe(
// res => this.clients = res,
// error => console.log(error)
// );
// }
};
我确实需要它。我目前收到3个错误(2个在服务上,1个在组件上)
a function whose declared type is neither 'void' nor 'any' must return a value.