xMagic- 仓湖云函数数字应用平台
首页
🍓 函数引擎
更多产品
更多产品
  • 微澜组网
首页
🍓 函数引擎
更多产品
更多产品
  • 微澜组网
  1. xScript - x16.25.11
  • xMagic - 仓湖云函数数字应用平台
  • xScript - 仓湖云函数数字应用引擎
  • xMagic - 二开应用场景案例
  • 数据应用
    • 消息订阅(WSS)
    • 消息订阅(SSE)
    • 用户信息
    • 免密登陆(短信)
  • xScript - x16.25.11
    • assert
    • buffer
    • color
    • compress
    • console
    • crontab
    • crypto
    • encoding
    • events
    • evenloop
    • esm
    • fetch
    • fs
    • image
    • kv
    • mail
    • ml
    • mqtt
    • multipart
    • net
    • os
    • path
    • process
    • protobuf
    • querystring
    • redis
    • request
    • require
    • sql
    • tty
    • tui
    • ua
    • url
    • util
    • websocket
    • xml
    • yaml
    • mongo
    • http
    • stream
    • runtime
  • 小工具
    • APS - 代理转发
      • Any Proxy Service - 高级 HTTP/HTTPS/gRPC 代理转发工具
      • 配置指南 - 双向 Headers 和 Match/Replace
  • 数据模型
    • Schemas
      • AdminChangeAvatarReq
      • casbin.CasbinRule
      • AdminDelBatchReq
      • entity.DeptLable
      • AdminDelReq
      • entity.DevGenTable
      • AdminListReq
      • entity.DevGenTableColumn
      • AdminLoginReq
      • entity.FlowWorkClassify
      • AdminPostReq
      • entity.FlowWorkInfo
      • AdminReply
      • entity.FlowWorkTemplates
      • AdminUpdatePwdReq
      • entity.LogLogin
      • MenuDelBatchReq
      • entity.LogOper
      • MenuDelReq
      • entity.LoginM
      • MenuListReq
      • entity.MenuLable
      • MenuPostReq
      • entity.MenuPath
      • MenuReply
      • entity.ResEmail
      • RoleApisReq
      • entity.ResOss
      • SystemApiDelBatchReq
      • entity.ScreenGroupLabel
      • SystemApiDelReq
      • entity.SysApi
      • SystemApiListReq
      • entity.SysConfig
      • SystemApiPostReq
      • entity.SysDept
      • SystemApiReply
      • entity.SysDictData
      • SystemDepartmentDelBatchReq
      • entity.SysDictType
      • SystemDepartmentDelReq
      • entity.SysJob
      • SystemDepartmentListReq
      • entity.SysMenu
      • SystemDepartmentPostReq
      • entity.SysNotice
      • SystemDepartmentReply
      • entity.SysPost
      • SystemRoleApiDelBatchReq
      • entity.SysRole
      • SystemRoleApiDelReq
      • entity.SysTenants
      • SystemRoleApiListReq
      • entity.SysUser
      • SystemRoleApiPostReq
      • entity.SysUserB
      • SystemRoleApiReply
      • entity.SysUserId
      • SystemRoleDelBatchReq
      • entity.SysUserView
      • SystemRoleDelReq
      • entity.VisualRuleChain
      • SystemRoleListReq
      • entity.VisualScreen
      • SystemRoleMenuAddReq
      • entity.VisualScreenGroup
      • SystemRoleMenuDelBatchReq
      • form.Login
      • SystemRoleMenuDelReq
      • from.SendMail
      • SystemRoleMenuListReq
      • map[string]interface {}
      • SystemRoleMenuPostReq
      • map[string]string
      • SystemRoleMenuReply
      • model.BaseAutoModel
      • SystemRolePostReq
      • model.BaseModel
      • SystemRoleReply
      • model.ResultPage
      • model.ResultPage.data
      • vo.AuthVo
      • vo.DeptTreeVo
      • vo.MenuTreeVo
      • vo.MetaVo
      • vo.RouterVo
      • vo.TableInfoVo
      • vo.TokenVo
      • vo.UserRolePost
      • vo.UserVo
      • vo.UserVo.data
首页
🍓 函数引擎
更多产品
更多产品
  • 微澜组网
首页
🍓 函数引擎
更多产品
更多产品
  • 微澜组网
  1. xScript - x16.25.11

fetch

Fetch 模块#

符合Web标准的Fetch API实现,用于XScript运行时。

功能特性#

✅ 完整的Fetch API实现
✅ 支持多种HTTP方法(GET, POST, PUT, DELETE等)
✅ 支持自定义请求头
✅ 支持多种请求体格式(string, JSON, FormData等)
✅ 支持响应体解析(text(), json(), blob(), arrayBuffer()等)
✅ 支持AbortController取消请求
✅ 支持超时控制
✅ HTTP连接池优化

基本使用#

简单GET请求#

POST请求#

使用AbortController取消请求#

手动取消请求#

监听中止事件#

自定义超时#

处理响应头#

不同的响应体解析方式#

API参考#

fetch(url, options)#

发送HTTP请求。
参数:
url (string): 请求的URL
options (object, 可选): 请求配置对象
method (string): HTTP方法,默认'GET'
headers (object): 请求头
body (any): 请求体(支持string, object, array等)
timeout (number): 超时时间(毫秒),默认30000
signal (AbortSignal): 用于取消请求的信号
credentials (string): 凭证模式,默认'same-origin'
cache (string): 缓存模式,默认'default'
mode (string): 请求模式,默认'cors'
redirect (string): 重定向处理,默认'follow'
返回值: Response对象

AbortController()#

创建一个新的AbortController实例。
返回值: AbortController对象
signal (AbortSignal): 关联的信号对象
abort(reason): 中止请求的方法

Response对象#

属性:
status (number): HTTP状态码
statusText (string): 状态文本
ok (boolean): 请求是否成功(状态码200-299)
headers (Headers): 响应头对象
url (string): 最终响应的URL
redirected (boolean): 是否发生了重定向
type (string): 响应类型
方法:
text(): 将响应体解析为文本
json(): 将响应体解析为JSON
blob(): 将响应体解析为Blob
arrayBuffer(): 将响应体解析为ArrayBuffer
formData(): 将响应体解析为FormData
注意: 响应体只能读取一次!

Headers对象#

方法:
get(name): 获取指定名称的响应头值
has(name): 检查是否存在指定的响应头
keys(): 获取所有响应头的名称
values(): 获取所有响应头的值
entries(): 获取所有响应头的键值对

AbortSignal对象#

属性:
aborted (boolean): 是否已中止
reason (string): 中止原因
方法:
addEventListener(callback): 添加中止事件监听器

注意事项#

1.
响应体只能读取一次:调用 text(), json()等方法后,不能再次读取响应体。
2.
AbortController使用:确保在fetch调用前创建controller,并传递 controller.signal而不是controller本身。
3.
超时处理:可以使用 timeout选项或AbortController来实现超时控制。
4.
错误处理:使用try-catch捕获请求错误、超时错误和中止错误。
5.
连接池:fetch实现使用了连接池优化,多个请求会复用连接。

实现细节#

使用Go标准库的 net/http实现
支持HTTP/1.1和HTTP/2
连接池配置:
最大空闲连接数:10000
每个主机最大空闲连接数:1000
每个主机最大连接数:1000
空闲连接超时:90秒
默认超时:30秒
自动设置User-Agent:Mozilla/5.0 (compatible; XScript/1.0)

示例:完整的应用场景#

修改于 2025-11-03 13:07:00
上一页
esm
下一页
fs
Built with