在Javascript中,能否返回一个函数,然后在外部范围内对其求值?
我正在编写一个谷歌应用程序脚本,其中我使用一个自制的库来处理常见任务 我是否可以从另一个函数调用helper函数(在本例中,doGet()函数是在发布应用程序时作为标准http请求调用的),并在外部范围中计算其返回值 为了清楚起见,如果“testgroup”没有适当的权限,我希望doGet(e)返回403。否则,我希望它呈现“你好”。这是因为doGet(e)函数返回的是浏览器中呈现的内容 希望现在更清楚了 编辑:重写整个问题 职能A:在Javascript中,能否返回一个函数,然后在外部范围内对其求值?,javascript,google-apps-script,Javascript,Google Apps Script,我正在编写一个谷歌应用程序脚本,其中我使用一个自制的库来处理常见任务 我是否可以从另一个函数调用helper函数(在本例中,doGet()函数是在发布应用程序时作为标准http请求调用的),并在外部范围中计算其返回值 为了清楚起见,如果“testgroup”没有适当的权限,我希望doGet(e)返回403。否则,我希望它呈现“你好”。这是因为doGet(e)函数返回的是浏览器中呈现的内容 希望现在更清楚了 编辑:重写整个问题 职能A: function doGet(e) { TARS.Se
function doGet(e) {
TARS.Security.permissionGateway("testgroup");
return HtmlService.createHtmlOutput("HI THERE");
}
职能B:
Security.permissionGateway = function(group) {
if (Security.activeUserBelongsToGroup(group)) {
return TARS_Errors.throwErrorPage(403);
}
}
您的问题的答案似乎非常简单,您只需要在返回
b
时在a
中设置一个条件:
function a() {
var returnValueB = b();
if (returnValueB === false) {
return false;
}
// do more stuff if b() didn't return false
}
function b() {
// we really don't care...
return false;
}
如果(!B())返回false,则返回false代码>?您可能想得太多了。另一个选择是抛出一个异常,但这是它自己的蠕虫……即使您进行了澄清,概念和代码仍将以几乎相同的方式工作。
TARS\u错误。throwErrorPage(403)
返回您需要检查的具体内容是什么?Jon Surell的建议似乎仍然回答了您的问题。试着指出为什么这不是一个解决方案的相关信息。如果Security.permissionGateway(group)
正常,它将返回未定义的?您的支票可能需要类似于typeof B()!='未定义的“
,或者如果这是一个选项,您应该始终从B
返回某些内容。使用变量进行单个检查似乎太过分了。@Juhana这不是生产代码:)我的目标是清晰。@jonsurll我刚刚添加了一些信息。过来看。