gpt4 book ai didi

javascript - RxJS 6 获取 Observable 数组的过滤列表

转载 作者:太空狗 更新时间:2023-10-29 17:51:18 25 4
gpt4 key购买 nike

在我的 ThreadService 类中,我有一个函数 getThreads()那还我一个Observable<Thread[]>用我所有的线程。

现在,我想要我的函数的另一个版本,我的线程被选定的主题过滤:函数 getSelectedThemeThreads(theme: Theme) .

我尝试使用运算符 mapfilter但我有以下错误消息 Property 'theme' does not exist on type 'Thread[] .

在我正在处理的代码下面:

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable, of } from 'rxjs';
import { catchError } from 'rxjs/operators';
import { Thread } from '../models/thread.model';
import { Theme } from '../models/theme.model';

@Injectable({
providedIn: 'root'
})
export class ThreadService {
private threadsUrl = 'api/threads';

constructor(private http: HttpClient) { }

getThreads(): Observable<Thread[]> {
return this.http.get<Thread[]>(this.threadsUrl);
}

getSelectedThemeThreads(): Observable<Thread[]> {
return this.http.get<Thread[]>(this.threadsUrl).pipe(
map(threads => threads),
filter(thread => thread.theme.id === theme.id)
);
}

预先感谢您的帮助。

最佳答案

我做了一个例子 StackBlitz / angular6-filter-result

主要思想是在 map() 中进行过滤,因为过滤器将获取对象数组。

getSelectedThemeThreads(theme: string): Observable<Flower[]> {
return this.http.get<Flower[]>(this.threadsUrl).pipe(
map(result =>
result.filter(one => one.theme === theme)
)
)
}

关于javascript - RxJS 6 获取 Observable 数组的过滤列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50659367/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com