В rxjs я сначала пытаюсь получить все данные, затем мне нужно перейти к следующей строке - PullRequest
0 голосов
/ 11 мая 2018

В Angular 5 у меня есть наблюдаемый массив в обслуживании, и я подписываюсь на это в компоненте. И в следующей строке утверждения я проверяю, были ли заполнены данные или нет. Но я обнаружил, что переменная еще не заполнена.

https://github.com/vsaravanan/ngx-mat-select-search.git

ОШИБКА TypeError: Невозможно прочитать свойство 'slice' из неопределенного Ошибка @ this.filteredBanksMulti.next (this.banks.slice ());

У меня есть пример данных, запущенных с jsonserver @ port 3000

        "banks"  :
        [
            { "name" : "apphugIndia", "id": "A"},
            { "name" : "batHugFr", "id": "B"},
            { "name" : "Bank C (France)", "id": "C"},
            { "name" : "hungary", "id": "D"},
            { "name" : "Hungary", "id": "E"},
            { "name" : "Bank F (Italy)", "id": "F"}
        ]

Как решить эту проблему?

1 Ответ

0 голосов
/ 11 мая 2018

если вы делаете так

this.httpCall.getData().subscribe(data=>this.recoreds = data);
this.records 

, то это не сработает, так как ваш вызов на сервер все еще не завершен, вам нужно подождать, пока данные не заполнятся, это означает, что вы можете выполнить операциютолько в методе subscribe.

, чтобы избежать проблемы, вам необходимо указать свой код в подписке

this.httpCall.getData().subscribe(data=> {
      this.records = data;
      //do code here which uses  this.records
 });
...