我尝试对函数进行编程,但不知何故弹出了错误: 当我想要.map(res => res.json()); 我在这里做错了什么?我使用最新的Angular版本。
import { Injectable } from '@angular/core';
//import {Http, Headers} from '@angular/http';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import {Contact} from './contact';
import 'rxjs/add/operator/map';
@Injectable({
providedIn: 'root'
})
export class ContactService {
constructor(private http: HttpClient) { }
//retrieving ContactService
getContacts()
{
return this.http.get('http://localhost:3000/api/contacts')
.map(res => res.json());
}
//add contact method
addContact(newContact) {
var headers = new HttpHeaders();
headers.append('Content-Type', 'application/json');
return this.http.post('http://localhost:3000/api/contact', newContact, {headers:headers})
.map(res => res.json());
}
//delete methods
deleteContact(id)
{
return this.http.delete('http://localhost:3000/api/contact'+ id)
.map(res => res.json());
}
}
答案 0 :(得分:3)
我相信您来自RxJS和HttpClient的旧版本。在最新版本中,您需要进行以下调整。
map
来应用pipe
。import 'rxjs/add/operator/map'; // <-- deprecated
import { map } from 'rxjs'; // <-- new
return this.http.delete('http://localhost:3000/api/contact'+ id).pipe(
map(res => res.json())
);
res.json()
。所获取的数据已经是一个JS对象。所以你可以说return this.http.delete('http://localhost:3000/api/contact'+ id);