Google Apps脚本中的响应和错误处理。 doPost? withFailureHandler()?

问题描述 投票:1回答:1

我希望每个人在目前的情况下都安全健康。

我对带有google apps脚本的项目有疑问。我有一个Web应用程序,我已经能够使用链接等方法找出doGet()的路由。

//global variables
const sheetId = "foo";
const Route = {};
Route.path = function(route, callback){
  Route[route] = callback;
}

function doGet(e){

  Route.path("newAccountForm",loadNewForm);
  Route.path("updateBrandForm", loadUpdateForm);

  if(Route[e.parameters.v]) {
       return Route[e.parameters.v](); 
  } else {
    return render("home") 
  }
};

function loadNewForm() {

 const sheetActive = SpreadsheetApp.openById(sheetId);
 const mySheet = sheetActive.getSheetByName("Sheet1");

  const title = "title";
  const index = "index";

  return render("addNewAccount",{title: title, index: index});  

}

function loadUpdateForm () {
  const sheetActive = SpreadsheetApp.openById(sheetId);
  const mySheet = sheetActive.getSheetByName("Sheet1");


  return render("updateBrand");

}

function render(file,argsObject) {
  const tmp = HtmlService.createTemplateFromFile(file);
  if(argsObject) {
    const keys = Object.keys(argsObject);
    keys.forEach(function(key){
      tmp[key] = argsObject[key];
    })   
  }  // END IF  
  return tmp.evaluate();  
}

这些链接..

    <a href="<?= ScriptApp.getService().getUrl(); ?>?v=newAccountForm">Add New Brand</a> 
    <a href="<?= ScriptApp.getService().getUrl(); ?>?v=updateBrandForm">Update Exisiting Brand</a> 
    <a href="<?= ScriptApp.getService().getUrl(); ?>?v=reports">Analytics / Reports</a> 

现在,我在处理响应和错误时有些卡住。我尝试使用doPost()来呈现新的HTML页面。我的问题是我不确定如何确定doPost中的请求是否成功。有没有办法检查?我可以通过事件对象获取所有参数,但不能获取状态。

<form id="myForm" onsubmit="handleNewAccountFormSubmit(this);"  method="post" action="<?= ScriptApp.getService().getUrl(); ?>">

我也一直尝试使用附带的.withFailureHandler()处理它,但是不确定如何触发它,或者不确定是否可以从我的.GS回调函数。我也尝试过FormSubmit函数之外的onFail()函数。

function handleNewAccountFormSubmit(formObject) {
google.script.run.withFailureHandler(onFail).withSuccessHandler().processNewAccountForm(formObject);
  function onFail(error) {
  Logger.log(error)
  console.log(error)
  return google.script.run.onError();
}
}

我基本上是想说明该功能是否成功运行以提供用户体验,但不确定最佳实践或不确定性,甚至是不可能的(我敢肯定!)

我期待任何想法,更正,如果不清楚,我会尽力提供更多信息。

再次感谢。

我希望每个人在目前的情况下都安全健康。我对使用Google Apps脚本的项目有疑问。我有一个Web应用程序,并且能够使用...

javascript google-apps-script routing google-apps-script-web-application
1个回答
1
投票

使用成功或失败处理程序来提醒用户:

© www.soinside.com 2019 - 2024. All rights reserved.