Chrome Dev-Tools Electron Uncaught TypeError: Невозможно прочитать свойство 'length' из неопределенного - PullRequest
0 голосов
/ 08 февраля 2020

Я учусь очищать электронные приложения и получаю странное поведение на консоли при попытке перебрать массив. Если я выполняю те же самые команды для одного элемента в массиве вручную, все работает должным образом, но я получаю Uncaught TypeError при использовании для l oop.

> var models = manager.getInstance().collection.models
undefined
> models.length
2378
> var attributes = models[0].attributes
undefined
> var resource = attributes.getResource()
undefined
> resource
//outputs object tree
> resource.idle.length
14
> models[0].attributes.getResource().idle.length
14

При итерации, однако, любой элемент resource.idle.length cra sh.

> var models = manager.getInstance().collection.models
undefined
> models.length
2378
> var data = new Array()
undefined
> for (n=0; n<models.length; n++;) {
     var attributes = models[n].attributes
     var resource = attributes.getResource()
     if (resource.idle.length > 0) {
          data.push(resource.idle)
     }
  }
Uncaught TypeError: Cannot read property 'length' of undefined

Это проблема с электронным приложением? Покопавшись в консоли и немного закодировав, кажется, что это огромный беспорядок. Иногда, когда я создаю var или просто запрашиваю консоль, он выводит undefined, но если я подожду se c и введу точно такую ​​же команду в консоли, он не вернется undefined.

Я что-то тут напутал или это проблема асинхронности / многопоточности? for loop работает слишком быстро, чтобы ссылки на объект были вовремя назначены для следующей команды? Если да, то каковы хорошие методы для этого?

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