本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
支持的运行时系统功能
以下几节介绍了支持的 APPSYNC_JS 运行时系统功能集。
核心功能
支持以下核心功能。
- Types
-
支持以下类型:
-
数字
-
字符串
-
布尔值
-
objects
-
数组
-
函数
-
- Operators
-
支持的运算符,其中包括:
-
标准数学运算符(
+、-、/、%、*等) -
Null 合并运算符 (
??) -
可选链 (
?.) -
按位运算符
-
void和typeof运算符 -
展开运算符(
...)
不支持以下运算符:
-
一元运算符(
++、--和~) -
in运算符注意
可以使用
Object.hasOwn运算符检查指定的属性是否位于指定的对象中。
-
- Statements
-
支持以下语句:
-
const -
let -
var -
break -
else -
for-in -
for-of -
if -
return -
switch -
spread syntax
不支持以下语句:
-
catch -
continue -
do-while -
finally -
for(initialization; condition; afterthought)注意
例外情况是
for-in和for-of表达式,支持这些表达式。 -
throw -
try -
while -
带标签的语句
-
- Literals
-
支持以下 ES 6 模板文本
: -
多行字符串
-
表达式插值
-
嵌套模板
-
- Functions
-
支持以下函数语法:
-
支持函数声明。
-
支持 ES 6 箭头函数。
-
支持 ES 6 剩余参数语法。
-
- Strict mode
-
默认情况下,函数在严格模式下运行,因此您无需在函数代码中添加
use_strict语句。无法对其进行更改。
原语对象
支持以下 ES 基元对象及其函数。
- Object
-
支持以下对象:
-
Object.assign() -
Object.entries() -
Object.hasOwn() -
Object.keys() -
Object.values() -
delete
-
- String
-
支持以下字符串:
-
String.prototype.length() -
String.prototype.charAt() -
String.prototype.concat() -
String.prototype.endsWith() -
String.prototype.indexOf() -
String.prototype.lastIndexOf() -
String.raw() -
String.prototype.replace()注意
不支持正则表达式。
但是,提供的参数支持 Java 正则表达式结构。有关更多信息,请参阅模式
。 -
String.prototype.replaceAll()注意
不支持正则表达式。
但是,提供的参数支持 Java 正则表达式结构。有关更多信息,请参阅模式
。 -
String.prototype.slice() -
String.prototype.split() -
String.prototype.startsWith() -
String.prototype.toLowerCase() -
String.prototype.toUpperCase() -
String.prototype.trim() -
String.prototype.trimEnd() -
String.prototype.trimStart()
-
- Number
-
支持以下数字:
-
Number.isFinite -
Number.isNaN
-
内置对象和函数
支持以下函数和对象。
- Math
-
支持以下数学函数:
-
Math.random() -
Math.min() -
Math.max() -
Math.round() -
Math.floor() -
Math.ceil()
-
- Array
-
支持以下数组方法:
-
Array.prototype.length -
Array.prototype.concat() -
Array.prototype.fill() -
Array.prototype.flat() -
Array.prototype.indexOf() -
Array.prototype.join() -
Array.prototype.lastIndexOf() -
Array.prototype.pop() -
Array.prototype.push() -
Array.prototype.reverse() -
Array.prototype.shift() -
Array.prototype.slice() -
Array.prototype.sort()注意
Array.prototype.sort()不支持参数。 -
Array.prototype.splice() -
Array.prototype.unshift() -
Array.prototype.forEach() -
Array.prototype.map() -
Array.prototype.flatMap() -
Array.prototype.filter() -
Array.prototype.reduce() -
Array.prototype.reduceRight() -
Array.prototype.find() -
Array.prototype.some() -
Array.prototype.every() -
Array.prototype.findIndex() -
Array.prototype.findLast() -
Array.prototype.findLastIndex() -
delete
-
- Console
-
可以使用控制台对象进行调试。在实时查询执行期间,控制台 log/error 语句会发送到 Amazon CloudWatch Logs(如果启用了日志记录)。在使用
evaluateCode评估代码期间,将在命令响应中返回日志语句。-
console.error() -
console.log()
-
- Function
-
-
不支持
apply、bind和call方法。 -
不支持函数构造函数。
-
不支持将函数作为参数传递。
-
不支持递归函数调用。
-
- JSON
-
支持以下 JSON 方法:
-
JSON.parse()注意
如果解析的字符串不是有效的 JSON,则返回空字符串。
-
JSON.stringify()
-
- Promises
-
不支持异步过程,也不支持 Promise。
注意
中不支持在
APPSYNC_JS运行时内访问网络和文件系统 Amazon AppSync。 Amazon AppSync 根据 Amazon AppSync 解析器或 Amazon AppSync 函数发出的请求处理所有 I/O 操作。
全局变量
支持以下全局常数:
-
NaN -
Infinity -
undefined
错误类型
不支持使用 throw 引发错误。您可以使用 util.error() 函数返回错误。您可以使用 util.appendError 函数在 GraphQL 响应中包含错误。
有关更多信息,请参阅错误实用程序。