更新时间:2024-08-14 19:50:33
CDNetworks Edge Cloud Apps 函数运行时基于 V8 JavaScript 和 WebAssembly 引擎,并定期更新至最新版本,确保您可以在函数中使用最新的 JavaScript 功能,无需转译器。几乎所有 Google Chrome 稳定版支持的标准内置对象都受支持。
以下方法根据Worker Global Scope可用:
atob()描述: 解码使用 base-64 编码编码的数据字符串。
btoa()描述: 从二进制数据字符串创建 base-64 编码的 ASCII 字符串。
setInterval()setInterval(func: function): number;
setInterval(func: function, delay: number): number;
setInterval(func: function, delay: number, ...args: any[]): number;
参数:
func: 要执行的函数。delay (可选): 延迟时间(以毫秒为单位)。...args (可选): 传递给函数的参数。返回值: 返回一个数字,表示定时器的 ID。
描述: 安排一个函数在每经过给定的毫秒数后执行。
clearInterval()clearInterval(intervalID: number): void;
参数:
intervalID: 定时器的 ID。描述: 取消使用 setInterval() 设置的重复执行。
setTimeout()setTimeout(func: function): number;
setTimeout(func: function, delay: number): number;
setTimeout(func: function, delay: number, ...args: any[]): number;
参数:
func: 要执行的函数。delay (可选): 延迟时间(以毫秒为单位)。...args (可选): 传递给函数的参数。返回值: 返回一个数字,表示定时器的 ID。
描述: 安排一个函数在给定的时间内执行。
clearTimeout()clearTimeout(timeoutID: number): void;
参数:
timeoutID: 定时器的 ID。描述: 取消使用 setTimeout() 设置的延迟执行。
注意: 定时器仅在请求上下文中可用。
performance.timeOrigin 和 performance.now()performance.timeOrigin描述: 返回高精度时间起点。 Workers 使用 UNIX 纪元作为时间起点,这意味着 performance.timeOrigin 将始终返回 0。
performance.now()描述: 返回一个 DOMHighResTimeStamp,表示自 performance.timeOrigin 以来经过的毫秒数。 请注意,Workers 有意降低了 performance.now() 的精度,使其返回最后一次 I/O 的时间,并且在代码执行期间不会前进。 实际上,正因为如此,并且因为 performance.timeOrigin 始终为 0,所以 performance.now() 将始终等于 Date.now(),从而在 Worker 内产生一致的时间流逝视图。
EventTarget 和 Event描述: EventTarget 和 Event API 允许对象发布和订阅事件。
AbortController 和 AbortSignal描述: AbortController 和 AbortSignal API 提供了一种用于取消异步操作的通用模型。
fetch()描述: 开始从网络获取资源的过程。参考 Fetch API。
注意: Fetch API 仅在请求上下文中可用。
TextEncoder 和 TextDecoder 都支持 UTF-8 编码/解码。 TextEncoderStream 和 TextDecoderStream 类也可用。
URL API 支持符合 HTTP 和 HTTPS 方案的 URL。
注意:
默认的 URL 类行为与 URL 规范 中记录的不同。
可以使用 url_standard 兼容性标志启用符合规范的 URL 类的新实现。
CompressionStream 和 DecompressionStream 类支持 deflate、deflate-raw 和 gzip 压缩方法。
URLPattern API 提供了一种基于便捷模式语法匹配 URL 的机制。
Intl API 允许您将日期、时间、数字等格式化为提供的语言环境(语言和地区)使用的格式。
navigator.userAgent设置 global_navigator 兼容性标志后, navigator.userAgent 属性可用,其值为 'Cloudflare-Workers'。 例如,这可以用来可靠地确定代码是在 Workers 环境中运行的。
当 JavaScript promise 被拒绝而没有附加拒绝处理程序时,全局范围会发出 unhandledrejection 事件。
当 JavaScript promise 拒绝被延迟处理(在 unhandledrejection 事件已经发出后,将拒绝处理程序附加到 promise 之后)时,全局范围会发出 rejectionhandled 事件。
addEventListener('unhandledrejection', (event) => {
console.log(event.promise); // 被拒绝的 promise。
console.log(event.reason); // 拒绝 promise 的值或错误。
});
addEventListener('rejectionhandled', (event) => {
console.log(event.promise); // 被拒绝的 promise。
console.log(event.reason); // 拒绝 promise 的值或错误。
});
navigator.sendBeacon(url[, data])设置 global_navigator 兼容性标志后, navigator.sendBeacon(...) API 可用于向 Web 服务器发送包含少量数据的 HTTP POST 请求。 此 API 旨在作为一种以尽力而为的方式异步传输分析或诊断信息的途径。
例如,您可以将以下内容:
const promise = fetch('https://example.com', { method: 'POST', body: 'hello world' });
ctx.waitUntil(promise);
替换为 navigator.sendBeacon(...):
navigator.sendBeacon('https://example.com', 'hello world');