更新时间: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');