这是我的代码。
import { injectable } from '@angular/core';
import { Http } from '@angular/http';
import 'rxjs/add/operator/catch';
@Injectable({
providedIn: 'root'
})
export class PostsService {
private url = 'https://jsonplaceholder.typicode.com/posts';
constructor(private http : Http ) { }
getPosts {
return this.http.get(this.url);
}
deletePost(id) {
return this.http.get(this.url + '/' + id);
}
}
我在我的电脑上执行此代码它正在工作但不在笔记本电脑上工作。这看起来很有趣,但这是真的 这是我项目的结构
答案 0 :(得分:11)
新版本的rxjs不再支持单一导入,而是尝试:
import { catchError } from 'rxjs/operators';
答案 1 :(得分:7)
在Angular 6中RXJS导入已被更改,必须将操作符“包装”在pipe()中,并在开头写入不带点(以前是.map,.retry,.catch;现在是:map,retry和catchError)的收获):
import { catchError, map } from 'rxjs/operators';
并使用pipe()
getPosts() {
// pack in "pipe()"
return this.http.get(this.url).pipe(
// eg. "map" without a dot before
map(data => {
return data;
}),
// "catchError" instead "catch"
catchError(error => {
return Observable.throw('Something went wrong ;)');
})
);
}
“我正在正在运行的PC上执行此代码,但无法在笔记本电脑上工作”-在笔记本电脑上,您安装了更新版本的cli cli。它使用新的其他进口生成角度6。问候
答案 2 :(得分:2)
如果您是因为初始代码建议的Udemy课程而来这里的。
进口
import { throwError } from 'rxjs';
import { catchError } from 'rxjs/operators';
这就是现在的样子。
deletePost(id){
return this.http.delete(this.url + '/' + id ).pipe(
catchError(error => {
if (error.status === 404)
return throwError(new NotFoundError());
return throwError(new AppError(error));
}));
}
答案 3 :(得分:1)
在角度7中,这是如何以干净的方式处理http get请求的方法
import {Injectable} from '@angular/core';
import {HttpClient} from '@angular/common/http';
import {Observable, throwError} from 'rxjs';
import {catchError, retry} from 'rxjs/operators';
@Injectable({
providedIn: 'root'
})
export class EmployeeService {
constructor(private _http: HttpClient) {
}
public getPosts(): Observable<Post[]> {
return this._http.get(<URL>).pipe(
retry(1), catchError(error => {
return throwError(error.message);
}));
}
}
答案 4 :(得分:0)
尝试一下,它将起作用!...
R_Project _Status
答案 5 :(得分:-2)
为什么不尝试添加&#34; import&#39; rxjs / add / operators / catch&#39;;&#34; (把&#39;并使其成为运营商)而不是&#34; import&#39; rxjs / add / operator / catch&#39;;&#34;