2016-02-18 2 views
0

Я пробовал этот учебник http://plnkr.co/edit/?p=preview И я хочу выполнить интеллектуальный компонент wiki, если пользователь вводит более трех символов. Я сделал это меняетНаблюдаемые данные (угловые 2) не возвращают пустые данные

items:Observable<string[]> = this._searchTermStream 
    .debounceTime(300) 
    .distinctUntilChanged() 
    .switchMap((term:string) => { 
     if (term.length > 3) { 
      return this._wikipediaService.search(term); 
     } else { 
      return Observable.empty(); 
     } 
    } 

, но он не работает. Все еще показывает старые основанные данные. Но я хочу ничего не показывать.

+0

Что не работает? Вы отлаживали это? –

+0

@AdrianKrupa да, я пытался отлаживать. Он по-прежнему показывает старые данные –

+0

Не уверен, что я понимаю, что вы говорите. В любом случае возврат 'Observable.empty' не будет пропускать пустой объект (он фактически ничего не пропускает по потоку), если это то, что вы хотите. Вы должны скорее сделать что-то вроде «return Observable.return ({})' (предположим, что {} - ваш пустой объект, он также может быть null, "", false, undefined и т. Д., Что позволяет вам очистить то, что отображается на экран). – user3743222

ответ

0

определение Observable.empty()

Создает Наблюдаемое, который не выделяет детали к наблюдателю и сразу же выдает полное уведомление.

Это не означает, что поток вернет пустой массив. он просто запускает его полностью

Смежные вопросы