You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apigee中是否不支持JavaScript的let关键字?

Apigee中使用let关键字报错的原因及解决办法

问题根源

Apigee传统JavaScript Policy依赖的是Mozilla Rhino引擎(多为1.7R3/R4等早期版本),该引擎对ES6及以上语法支持不完善。let是ES6引入的块级作用域变量声明,不在Rhino早期版本的支持范围内,因此编译时会抛出语法错误;而var属于ES5及更早的标准语法,完全兼容该引擎,所以能正常运行。

解决方案

  • 替换为var:这是最直接的兼容方案,将代码中的let全部替换为var即可,修改后的代码示例:
extractResourceId(resourceIdLocation, resourceIdPath);

function extractResourceId(resourceIdLocation, resourceIdPath) {
  if (resourceIdLocation == "PATH_VARIABLE") {
    var resourceId = context.getVariable('proxy.pathsuffix').substring(resourceIdPath.length).split('/')[0];
    context.setVariable('custom.resourceId', resourceId);
    return;
  }
  var resourceId = context.getVariable('request.queryparam.'.concat(resourceIdPath));
  context.setVariable('custom.resourceId', resourceId);
  return;
}
  • 改用Node.js代理:如果需要使用完整的ES6+语法,可切换到Apigee的Node.js代理环境,该环境基于V8引擎,支持所有ES6及后续特性。
  • 代码转译:若必须在传统JavaScript Policy中使用ES6语法,可先用Babel等工具将代码转译为ES5语法后再部署。

内容的提问来源于stack exchange,提问作者asifaftab87

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 21:32:39