2017-10-19 123 views
1

我試圖保存電子郵件在一個特定的驅動器文件夾中找到功能hasNext但收到錯誤消息類型錯誤:不能在對象

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返回單個文件夾,而不是一個迭代器。 – ScampMichael

回答

0

一般來說:如果以後「得到」的名詞複數形式,你會得到一個迭代器與hasNextnext方法一起使用。如果那個名詞是單數形式的,你會得到一個單一的對象。例子:

  • getFileById回報一個文件
  • getFiles返回迭代
  • getFilesByName返回迭代
  • getFilesByType返回迭代
  • getFolderById回報一個文件夾
  • getFolders返回迭代
  • getFoldersByName返回迭代
相關問題