У меня есть текстовое поле в моем HTML, которое вызывает внутреннюю службу в режиме реального времени на основе введенного текста.Если пользователь вводит что-то вроде «abc», мой сервис возвращает массив объектов с таким именем «abc».
Я использую для этого Observable и Subject и возвращаю обработанный сервис в своем компоненте.Пожалуйста, смотрите код.
HTML-код
<input size="30" type="text" (keyup)="searchTerm$.next($event.target.value)">
Код компонента
import { Subject } from 'rxjs/Subject';
searchString$ = new Subject<string>();
constructor() {
this.searchString$.debounceTime(500)
.distinctUntilChanged()
.map(searchText => {
return this.backEndService.fetchSearchStringData(searchText);
})
.subscribe(result => {
console.log('result');
console.log(JSON.stringify(result));
});
}
Когда тип II 'abcЗатем он вызывает этот fetchSearchStringData метод.Вызов службы - это не что иное, как простой вызов restService.post, а затем установка объекта является наблюдаемой.Использование этих данных для фильтрации чего-либо и возврата окончательного массива.
Но мой компонент. Подпишется, чтобы нас вызывали сначала и только один раз, и он показывает неопределенное значение.(Где я consoled.logging 'результат').
Как я могу убедиться, что я получаю данные, как только они получат возврат от сервиса при моей подписке на компонент?
Заранее спасибо.