Как вернуть строку, пока она не определена - PullRequest
1 голос
/ 25 октября 2019

Я получил эту ошибку при попытке получить сообщения из входящих сообщений Gmail.

    ReferenceError: "messages" is not defined.

Я не знаю, есть ли другие функции, которые подходят здесь лучше.

function getRelevantMessages()
{
  var threads = GmailApp.search("newer_than:33d", 0, 100);
  var messages=[];
  threads.forEach(function(thread) {
                    messages.push(thread.getMessages()[0]);
                  });
  return messages;
}

if (!messages) {
  //Check if it returns something 
}

код от pastebin https://pastebin.com/TRkEB6yM

1 Ответ

1 голос
/ 25 октября 2019

В коде, который вы прикрепили к своему вопросу, у вас есть оператор if, который находится за пределами функции getRelevantMessages(). Фактически, ошибка, которую вы получаете (ReferenceError: "messages" is not defined.), связана не с какой-либо ошибкой в ​​функции getRelevantMessages(), а скорее с этим оператором. Чтобы запустить ваш код, пожалуйста, сделайте следующее:

  • Удалите любой код, который определен за пределами объявленных функций верхнего уровня. Например:
if (!messages) {
  //Check if it returns something 
}
  • В редакторе выберите функцию, которую вы хотите запустить, и нажмите кнопку play , чтобы запустить ее. Вы можете объявить и использовать следующую функцию в качестве средства тестирования:
function main() {
  var messages = getRelevantMessages();
  for (var i=0; i<messages.length; i++) {
    Logger.log('Got message: ' + messages[i].getId());
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...