Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Javascript中,能否返回一个函数,然后在外部范围内对其求值?_Javascript_Google Apps Script - Fatal编程技术网

在Javascript中,能否返回一个函数,然后在外部范围内对其求值?

在Javascript中,能否返回一个函数,然后在外部范围内对其求值?,javascript,google-apps-script,Javascript,Google Apps Script,我正在编写一个谷歌应用程序脚本,其中我使用一个自制的库来处理常见任务 我是否可以从另一个函数调用helper函数(在本例中,doGet()函数是在发布应用程序时作为标准http请求调用的),并在外部范围中计算其返回值 为了清楚起见,如果“testgroup”没有适当的权限,我希望doGet(e)返回403。否则,我希望它呈现“你好”。这是因为doGet(e)函数返回的是浏览器中呈现的内容 希望现在更清楚了 编辑:重写整个问题 职能A: function doGet(e) { TARS.Se

我正在编写一个谷歌应用程序脚本,其中我使用一个自制的库来处理常见任务

我是否可以从另一个函数调用helper函数(在本例中,doGet()函数是在发布应用程序时作为标准http请求调用的),并在外部范围中计算其返回值

为了清楚起见,如果“testgroup”没有适当的权限,我希望doGet(e)返回403。否则,我希望它呈现“你好”。这是因为doGet(e)函数返回的是浏览器中呈现的内容

希望现在更清楚了

编辑:重写整个问题

职能A:

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我刚刚添加了一些信息。过来看。