Я новичок в rxjs в Angular 7, у меня есть api, который возвращает данные пользователя. Я хочу удалить объекты с одинаковыми именами, я почти не пробовал его с помощью отличногоUntilKeyChanged (), но вывод в консоли такой же, как и из api отклик. а также могу я напрямую использовать возвращенные данные из службы, поскольку ответ уже является наблюдаемым с использованием интерфейса без использования From () или 0f () в компоненте.
Это для angular 7 и Rxjs 6, я использую angular в течение одного года, но я до сих пор не использовал Rxjs, у меня много путаницы в Rxjs, могу ли я использовать ответ Http от службы непосредственно в компоненте, или я хочу Чтобы использовать любые операторы для преобразования ответа в виде потока вкратце, могу ли я использовать Json response непосредственно в компоненте для использования различных операторов, таких как find (), first (), ignoreElements и т. д.
user.service.ts
private urlLara = 'http://laravel.technalatus.com/public/api/'
public getusers(): Observable<User> {
const head = new HttpHeaders({
'Accept': 'application/json',
'Content-Type': 'application/json',
})
return this.http.get<User>(this.urlLara + 'users', { headers: head
});
}
component.ts
export class AppComponent implements OnInit {
title = 'angularrxjs';
items: {};
post: Post;
user: User;
public searchTerm: string;
constructor(private UserService: UserService) {
}
ngOnInit() {
this.distinct()
}
public Duchanged() {
// custom compare for name
this.UserService.getusers().pipe(distinctUntilChanged((prev, curr) => prev.name === curr.name))
.subscribe(console.log);
}
Получение вывода как
[
{id: 2, name: "alshoja", email: "[email protected]", email_verified_at: null, type: "admin"},
{id: 3, name: "Ellaware", email: "[email protected]", email_verified_at: null, type: "user"},
{id: 17, name: "alshoja", email: "[email protected]", email_verified_at: null, type: "user"}
]
Ожидая выхода как
[
{id: 2, name: "alshoja", email: "[email protected]", email_verified_at: null, type: "admin"},
{id: 3, name: "Ellaware", email: "[email protected]", email_verified_at: null, type: "user"},
]