TypeError: Не удается найти функцию hasNext в объекте

1

Я пытаюсь сохранить электронную почту в конкретной папке диска, но получаю сообщение об ошибке

TypeError: Cannot find function hasNext in object

Любая идея, как я могу это преодолеть.

function saveGmailToDrive() { 
    var gmailLabels  = "SaveToDrivetest";  
    var driveFolder  = "Emails saved by " + Session.getActiveUser().getEmail()

    /* Gmail Label that contains the queue */
    var label = GmailApp.getUserLabelByName(gmailLabels) ? 
                    GmailApp.getUserLabelByName(gmailLabels) :
                    GmailApp.createLabel(gmailLabels);

    var threads = GmailApp.search("in:" + gmailLabels, 0, 5);  

    if (threads.length > 0) {    
        /* Google Drive folder where the Files would be saved */
        var folders = DriveApp.getFolderById("0B9Ug3fXvrl5HeGRddddMcE93bkE3Q1k");
        var folder = folders.hasNext() ?
                         folders.next() : 
                         DriveApp.createFolder(driveFolder);
    }
  • 4
    DriveApp.getFolderById возвращает одну папку, а не итератор.
Теги:
google-apps-script
google-drive-sdk
gmail-api

1 ответ

0

В общем: если существительное после "get" находится во множественном числе, вы получаете итератор, который будет использоваться с hasNext и next методами. Если это существительное в единственном виде, вы получаете один объект. Примеры:

  • getFileById возвращает один файл
  • getFiles возвращает итератор
  • getFilesByName возвращает итератор
  • getFilesByType возвращает итератор
  • getFolderById возвращает одну папку
  • getFolders возвращает итератор
  • getFoldersByName возвращает итератор

Ещё вопросы

Сообщество Overcoder
Наверх
Меню