我正在迁移rxjs@5.5.2
并使用lettable运算符......我还更新了Observable
静态方法.我想知道什么是对应的Observable.throw
和import 'rxjs/add/observable/throw';
.
我应该导入丑陋_throw
吗?
import { _throw } from 'rxjs/observable/throw';
或者有更好的方法.老实说,我喜欢静态方法Observable
,现在看来,像所有的静态创建方法of
,from
应该从进口rxjs/observable/<methodName>
?
Jay*_*ase 33
我仍然在5.5左右,但它看起来像现在而不是导入throw使用ErrorObservable.
// import { _throw } from 'rxjs/observable/throw';
import { ErrorObservable } from 'rxjs/observable/ErrorObservable';
ErrorObservable.create('error');
Run Code Online (Sandbox Code Playgroud)
从本指南看,它必须是_throw以避免关键字冲突(视频的其余部分适合5.5入门)
ble*_*her 29
继续Mick的回答,在rxjs版本6中_throw
被替换为throwError
import {Observable, throwError} from 'rxjs';
Run Code Online (Sandbox Code Playgroud)
Mic*_*ick 12
是的_throw
是正确的(这将完成JayChase所写的,但代码更少).你做同样的事情of
:
import {of} from 'rxjs/observable/of';
import {_throw} from 'rxjs/observable/throw';
// ...
// ...
if (result) {
return of(result as T);
} else {
return _throw('error');
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
对于 Angular 5 及更高版本:
import{Http} from '@angular/http';
import {HttpClient,HttpResponse,HttpErrorResponse } from '@angular/common/http';
import { Injectable} from '@angular/core'
import {Employee} from './employee';
import { Observable,throwError } from 'rxjs';
import { map,catchError } from 'rxjs/operators';
@Injectable()
export class employeeService{
constructor(private _http:Http){ }
getEmployees():Observable<Employee[]>{
return this._http.get('YOUR URL')
.pipe(
map((res: Response) => res.json()),
catchError(this.handleError)
);
//.pipe(catchError(this.handleError));
}
handleError(error:HttpErrorResponse){
console.log(error);
return throwError(error.message);
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
17686 次 |
最近记录: |