Я пытаюсь иметь бесконечный раздел прокрутки в своем приложении. Для этого я использую этот компонент для обработки событий прокрутки и т. д. . Когда прокрутка достигает нижней части div, я вызываю функцию для получения дополнительных данных. Все идет нормально.
Чтобы сделать эту функцию более эффективной, я пытаюсь подождать несколько секунд перед выполнением вызова, а также убедиться, что данные обрабатываются правильно. Для этого я просмотрел пример, показанный на Веб-сайт Angular, демонстрирующий поиск в Википедии.
У меня аналогичная настройка, показанная в статье, моя проблема в том, что я получаю следующую ошибку при вызове switchMap()
:
Type 'void' is not assignable to type 'ObservableInput<{}>'
Это пример моего кода:
private scrollEndActive: Subject<boolean> = new Subject<boolean>();
ngOnInit() {
...
this.scrollEndActive
.debounceTime(1000)
.distinctUntilChanged()
.switchMap(data => {
// ... get data from server
})
}
...
// event to trigger call to server
scrollEnd() {
this.scrollEndActive.next(true);
}
С приведенным выше кодом я получаю следующее:
Из проведенного мной исследования кажется, что проблема связана с тем, что нужно возвращать Observable (Тип 'void' не может быть присвоен типу 'ObservableInput‹{}›'). Но в моем случае я не уверен, в чем проблема.
Я работаю с:
- Угловой 4.0.1
- Типскрипт 2.2.2
- RxJS 5.2.0
Observable
В чем проблема? - person yurzui   schedule 18.05.2017Subject
при его запуске, поэтому я не понимаю, где я должен возвращатьObservable
- person Daniel Grima   schedule 18.05.2017.switchMap(data => { return Observable.of(null) })
Не забывайтеimport 'rxjs/add/observable/of';
Но это просто заглушка. Я предполагаю, что вы хотите получить реальный наблюдаемый - person yurzui   schedule 18.05.2017.switchMap(data => { return Observable.of(null) })
. Похоже, вам вообще не нужно использоватьswitchMap
. - person martin   schedule 18.05.2017Observable.of(null)
Я предполагаю, что yurzui просто показывал пример - person Daniel Grima   schedule 18.05.2017.switchMap(data => fetch('/api/getAnswer?data=${data}')
- person Brandon   schedule 18.05.2017