Почему я получаю эту ошибку: Uncaught TypeError: Невозможно прочитать свойство 'serviceId' из неопределенного - PullRequest
0 голосов
/ 30 августа 2018

Я могу вывести значение serviceId на консоль, но когда я пытаюсь сравнить его в if (), я получаю эту ошибку. Подскажите, пожалуйста, почему это происходит и как ее решить, пожалуйста?

  • Я также пытался поместить значение servicesCompare1 [i] .serviceId в переменную, и я получил ту же ошибку.

        var servicesCompare1 = [];
        var servicesCompare2 = [];
        $.getJSON("http://localhost:55972/api/status", function (data) {
            self.services(data.services);
            self.lastCheck = data.lastCheck;
            servicesCompare1 = (data.services);
        });
    
        function DashboardRefresh() {
            self.servicesRefresh = ko.observable([]);
            $.getJSON("http://localhost:55972/api/status", function (data) {
                servicesCompare2 = (data.services);
                self.servicesRefresh(data.services);                
            });
          if (servicesCompare2.length > servicesCompare1.length) {
              for (i = 0; i < (servicesCompare2.length-1); i++) {                   
                  console.log(servicesCompare2[i].serviceId);
                  if (servicesCompare1[i].serviceId !== servicesCompare2[i].serviceId) {
                      self.services.push(servicesCompare2[i]);
    
                  }
              }
          } 
        }
        setInterval(DashboardRefresh, 5000);
    

Вывод на консоль: 47 48 49 ... другие идентификаторы

Uncaught TypeError: Невозможно прочитать свойство 'serviceId' из неопределенного в DashboardRefresh (NetworkStatus.html: 66)

1 Ответ

0 голосов
/ 30 августа 2018

Ваше первое условие гарантирует, что servicesCompare2 имеет больше элементов, чем servicesCompare1. Затем вы просматриваете каждый элемент в servicesCompare2. Это означает, что в какой-то момент вы столкнетесь с ситуацией, когда servicesCompare2 все еще имеет элементы, которые необходимо пройти, в то время как servicesCompare1 этого не делает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...