【问题标题】:TypeError: Cannot find function hasNext in objectTypeError:在对象中找不到函数 hasNext
【发布时间】:2018-03-31 18:44:43
【问题描述】:

我正在尝试将电子邮件保存到特定的驱动器文件夹中,但收到错误消息

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

【问题讨论】:

  • DriveApp.getFolderById 返回单个文件夹,而不是迭代器。

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


【解决方案1】:

一般来说:如果“get”后面的名词是复数形式,你会得到一个迭代器,用于hasNextnext 方法。如果那个名词是单数形式,你会得到一个对象。例子:

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

【讨论】:

    猜你喜欢
    • 2018-06-04
    • 2015-09-27
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多