如何使用rxjs 6对Angular 6中的Observable <Item []>进行排序?

dja*_*azz 10 typescript angular6 rxjs6

我只想对我的类类型"类别"的可观察对数据进行排序.所以Observable <Category []>我想排序.

所以我用它升级到Angular6和rxjs6.我知道的一个可能是简单的Typescript的问题是如何进行"排序"操作,如:

sort((x,y) => x.description < y.description ? -1 : 1)
Run Code Online (Sandbox Code Playgroud)

在新的Angular6里面?我曾经在5年做过这个

var response = this.http.get<Category[]>(this.endpoint);
        .map((result: Response) => this.alphabetize(result));


alphabetize = (result: Response) => this.Categories = result.json()
.sort((x,y) => x.description < y.description ? -1 : 1)
Run Code Online (Sandbox Code Playgroud)

它工作得很好.现在在Angular希望你使用它的HttpCLIENTModule和HttpClient中它更简单:

var data = this.http.get<Category[]>(this.endpoint);
Run Code Online (Sandbox Code Playgroud)

我只是将魔术<(对象)>放在我的端点之前,它就是为我做的.凉.但是我没有看到你如何容易地从物体中取出它,使用Source,Pipe,from,of.我知道它可能很简单我只是不知道语法.

Est*_*ask 11

它是:

this.http.get<Category[]>(this.endpoint).pipe(
  map(results => results.sort(...))
);
Run Code Online (Sandbox Code Playgroud)

或者自从sort修改现有数组后,在do/中提供副作用在语义上更正确tap:

this.http.get<Category[]>(this.endpoint).pipe(
  tap(results => {
    results.sort()
  })
);
Run Code Online (Sandbox Code Playgroud)