Ошибка, отображаемая в вашей консоли, гласит: «Вы указали« ноль »там, где ожидался поток. Вы можете указать« Наблюдаемый »,« Обещание »,« Массив »или« Итерируемый »). Эта ошибка действительно описательная. Таким образом, вы возвращаете значение null в блоке if, чтобы исправить проблему, вам нужно предоставить Observable. В зависимости от того, что вам нужно, вы можете принять реальное решение.
Простой способ исправить это - вернуть наблюдаемое (empty (), never (), of (), et c).
)
import {
empty
} from 'rxjs';
this.searchField.valueChanges.pipe(
debounceTime(1000),
switchMap(searchText => {
if (searchText .length >= 3) {
return this.api.post(`api/medicine/medicines`, { product: searchText })
}
else {
return empty(); // <- You don't call next with empty
}
})
).subscribe(term => {
console.log('api: ', term)
this.MedicineList = term;
this.onChangeText();
});
Подробнее о rx js можно узнать здесь: Rx JS Пустые документы