TypeError:在对象中找不到函数hasNext

时间:2017-10-19 16:37:22

标签: javascript google-apps-script google-drive-api gmail-api

我试图将电子邮件保存到特定的驱动器文件夹但是收到错误消息

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);
    }

1 个答案:

答案 0 :(得分:0)

一般情况下:如果“get”之后的名词是复数形式,则会得到一个与hasNextnext方法一起使用的迭代器。如果该名词是单数形式,则会得到一个单独的对象。例子:

  • getFileById返回一个文件
  • getFiles返回迭代器
  • getFilesByName返回迭代器
  • getFilesByType返回迭代器
  • getFolderById返回一个文件夹
  • getFolders返回迭代器
  • getFoldersByName返回迭代器