调用函数结果时返回“undefined”

时间:2013-11-30 04:56:27

标签: javascript google-apps-script

我正在尝试从Google Apps脚本中的其他功能调用函数,但在测试期间,它会在记录器中不断返回“undefined”。以下是有一些解释的功能。

此处的功能将获取活动用户的电子邮件地址。当它自己运行时,它返回电子邮件地址就好了。 (我添加了logger.log行,以便您可以尝试查看。

   function getUser() {
   //Uses the base class to get acive user's email
   var email = Session.getActiveUser().getEmail();
   //Logger line is for testing only and would be removed once final
   Logger.log(email);
   }

此功能的目的是将附加信息添加到电子表格的最后一行,以用于某些列。这将被称为onFormSubmit。我试图通过调用上面的函数来获取活动的用户电子邮件地址。我知道我可以取消注释变量requestUser上面的一行,但我希望调用其他执行特定任务的函数,试着学习并扩展我的理解。我想。

   function addToPTO(){
     var ss1 = SpreadsheetApp.getActiveSpreadsheet();
     var sheet = ss1.getSheetByName('Form Responses');
     var data = sheet.getDataRange().getValues();
     var data2 = sheet.getDataRange().getLastRow();

     //var getUserInfo = Session.getActiveUser().getEmail();
     var reqeustUser = getUser();
     Logger.log(reqeustUser);

     for (var i = 0; i < data.length; i++) {
       var row = data[i];
       var status = row[8];
       var comment = row[9];   
       if (status == "") {
         data[i][8] = "Pending";
         }
     }    
     sheet.getDataRange().setValues(data);  
   }

1 个答案:

答案 0 :(得分:1)

您可以执行以下两项操作之一:

function getUser()

中回复电子邮件

它看起来像这样:

function getUser() {
   // moved Logger one line above, it will not log if it occurs AFTER the return statement
   Logger.log(email);
   return Session.getActiveUser().getEmail();
}

function addToPTO(){
     var ss1 = SpreadsheetApp.getActiveSpreadsheet();
     var sheet = ss1.getSheetByName('Form Responses');
     var data = sheet.getDataRange().getValues();
     var data2 = sheet.getDataRange().getLastRow();

     var reqeustUser = getUser();
     Logger.log(reqeustUser);

     for (var i = 0; i < data.length; i++) {
       var row = data[i];
       var status = row[8];
       var comment = row[9];   
       if (status == "") {
         data[i][8] = "Pending";
         }
     }    
     sheet.getDataRange().setValues(data);  
}