Сценарий Google Apps возвращает «неопределенное» сообщение об ошибке, но все еще завершается - PullRequest
0 голосов
/ 07 ноября 2018

Чтобы установить сцену, вот запрос, который я делаю с помощью Google Apps Script ...

function getHvdcData() {
  // call the API
  var response = UrlFetchApp.fetch(dDomain + epHvdc, dParams);
  var json = JSON.parse(response.getContentText());
  Logger.log(json);

  // define array location in response 
  var dataLevel = json['data']['hvdcFlow'];

  for (var i = 0; i <= dataLevel.length; i++) {
    var input = [];
    input.push(dataLevel[i].date);
    input.push(dataLevel[i].period);
    input.push(dataLevel[i].flow);
    input.push(dataLevel[i].direction);
    input.push(now = new Date());
    shtHvdc.appendRow(input);
  }
}

Это пример того, что возвращается в ответ ...

{
    resultCode:200, 
    message:"Success", 
    generated:"2018-11-07T14:00:46", 
    expires:"2018-11-07T14:05:46", 
    data:{
        hvdcFlow:[
            {
                date:"2018-11-07T00:00:00", 
                period:27, 
                flow:387.446, 
                direction:"North"
            }
        ]
    }
}

Я надеюсь, что кто-то может помочь мне понять, почему я получаю это сообщение

TypeError: Невозможно прочитать свойство "date" из undefined. в getHvdcData (demo_site: 79)

Строка 79 в моем коде выделяет атрибут ответа JSON, который я затем добавляю в массив, который помещается на лист Google (input.push(dataLevel[i].date);). Я понимаю, что в моем коде нет строк, которые бы конкретно определяли атрибут (ы), но подумал, что это часть функции JSON.parse. Сценарий по-прежнему может прочитать .date, добавить соответствующее значение в var input = []; и вставить его в лист Google.

Если ошибка генерируется из-за того, что я специально не объявляю, что такое .date, есть ли способ отключить проверку для этой части кода? Учитывая, что сценарий по-прежнему вставляет данные, как и ожидалось, меня это обычно не беспокоит, однако я также создал триггер, основанный на времени, для его запуска. В настоящее время мои исполнения находятся на 100% Сбой из-за этого, и я бы предпочел, чтобы на странице «Выполнение триггера» отображалось только то, где не удалось запустить мой скрипт.

Любая помощь или совет с благодарностью.

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