如果用户点击警报,如何处理超时错误?

时间:2018-02-27 23:22:39

标签: google-apps-script google-sheets

我有一个Google表格插件,它使用App Script Ui服务提供的对话框,即SpreadSheetApp.getUi().alert(...)。这通常可以正常工作,除非用户没有选择一个选项或在5分钟内关闭警报(比如他们切换到不同的选项卡或离开他们的计算机),在这种情况下,"超时"抛出异常。

我的代码:

var ui = SpreadsheetApp.getUi();
var response = ui.alert(msg, ui.ButtonSet.YES_NO);
return (response == ui.Button.YES);

Apps脚本执行记录中的错误:

[18-02-27 16:40:18:080 EST] Starting execution
[18-02-27 16:40:18:096 EST] SpreadsheetApp.getUi() [0 seconds]
[18-02-27 16:45:18:160 EST] Ui.alert([Are you sure you want to delete this 
thing?, YES_NO]) [300.063 seconds]
[18-02-27 16:45:18:166 EST] Execution failed: Timed out waiting for user 
response (line 289, file "Code") [300.066 seconds total runtime]

抛出异常后,警报仍然可见,如果用户回来并点击"是"上面的函数仍然没有返回true。它只是关闭对话框,用户必须再次尝试。

如果我只在警报周围添加try / catch,则用户不会知道警报在5分钟后变得无用。理想情况下,我可以调用alert.close()之类的东西,但没有我能找到的方法。有没有更好的方法来解决这个问题,或者我应该切换到使用HTML / javascript进行警报?

0 个答案:

没有答案