Angular Observable:在解析前修改数据

Ale*_*liy 3 observable rxjs angular

我试图在通过这种方式解析之前转换数据,但订阅者获得未转换的数据。

@Injectable()
export class OrderService {
    getAll(): Observable< Array<Order> > {
        let url = 'http://fakeapi.com';
        return this.http.get( url )
          .pipe(
            tap( (data: any) => {
                /*
                * MAKE DATA TRANSFORMATIONS HERE
                */
            }),
            catchError( (err: any, caught: Observable<{}>) => {
              console.log('error while GET : ' + url);
              console.warn(err);
              return caught;
            })
          );
    }
}
Run Code Online (Sandbox Code Playgroud)

这是一个订阅者:

this._orderService.getAll().subscribe( data => {
  this.orders = data;
  console.log('\nplanning-overview-page : _orderService.getAll : data ', data);
});
Run Code Online (Sandbox Code Playgroud)

bry*_*n60 5

map 是用于在可观察流中转换值的运算符,您必须确保它返回一个值。

map(data => {
    // do your transformations
    return data;
});
Run Code Online (Sandbox Code Playgroud)