У меня есть метод, который возвращает наблюдаемое следующим образом
constructor(private _http: HttpClient) {}
getUsers(location){
return this._http.get(`https://someurl?location=${location}`)
.pipe(
map((response: any) => response),
distinctUntilChanged()
)
}
(Пожалуйста, примите во внимание, что все необходимые зависимости импортированы)
Итак, чтобы отобразить результат пользователей, я вызываю метод loadUsers.
loadUsers(location){
this.getUsers(location).subscribe( users => {
this.userList = users;
});
}
ngOnInit(){
this.loadUsers('mumbai');
}
Таким образом, приведенный выше код загружает список пользователей для меня, для всех пользователей, которые имеют местоположение Мумбаи.
Теперь у меня есть список местоположений в пользовательском интерфейсе с флажком рядом с ним, как
Mumbai,
Delhi,
Kerala
Таким образом, нажатие на одно местоположение вызовет метод loadUsers с именем местоположения в качестве параметра.
Поэтому, когда я снова нажимаю на Мумбаи из флажка (перед тем, как щелкнуть любой другой флажок, кроме Мумбаи), я не хочу снова загружать пользователей, принадлежащих Мумбаи, так как он уже был загружен при загрузке.
Я прочитал, что в таких случаях можно использовать DifferentUntilChanged (). Однако, похоже, это не работает для меня, так как, когда я выбираю Mumbai из списка флажков, он все равно попадает в вызов loadUsers из Mumbai
PS - Это не реальный вариант использования. Приведенное выше описание является лишь попыткой разъяснить мою проблему всем вам.
Я новичок в Angular и Rxjs. Пожалуйста, помогите.