SmartDevicesManager(options?: { logConfig?: LogConfig })
版本要求:
@ray-js/panel-sdk≥1.16.0
描述
多设备管理器:统一管理多个设备实例,负责批量初始化、全局事件路由、全局状态缓存,以及 add / batchAdd / delete 等标准化操作。 构造器本身零副作用,不会注册任何全局监听。
参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
options | { logConfig?: LogConfig } | 否 | 配置选项 |
返回值
类型:SmartDevicesManager
SmartDevicesManager 实例
引用对象
type
LogConfig日志配置| 属性 | 类型 | 必填 | 描述 |
|---|---|---|---|
level | "VERBOSE" | "SUCCESS" | "INFO" | "WARN" | "FATAL" | 否 | 日志输出级别,默认 INFO,如果想要默认去掉每次 DP 点下发上报打印的信息时,可配置为 WARN 级别以上 |
方法
| 方法名 | 说明 |
|---|---|
| init | 开始监听全局事件(Ray 全局 DP/上下线等),幂等调用。 |
| on | 订阅多设备管理器变更事件。 SdmProvider 内部已通过 change 事件驱动多设备 Hooks 刷新;常规业务通常无需手动监听。 仅在 Provider 外部监听设备状态变化(如全局日志、非 React 组件等场景)时使用。 |
| off | 取消订阅多设备管理器变更事件。 需传入与 on 时相同的事件名和回调引用。 |
| add | 添加单个设备实例并完成初始化。 若尚未 init() 会先自动 init(),保证向后兼容。 常见场景是动态添加单台关联设备;若 deviceId 已存在则抛出错误。 |
| batchAdd | 批量向多设备管理器中添加设备实例。内部会先批量拉取设备信息(单次网络请求),再按 concurrency 并发初始化,支持部分失败并在返回结果中区分成功与失败列表。 每台设备都可独立配置 interceptors 与 logConfig。 |
| delete | 删除设备实例。 从多设备管理器中删除指定 key 对应的设备实例,自动调用该实例的 destroy() 并清理内部映射。 |
| batchDelete | 批量删除多设备管理器中指定 key 列表对应的设备实例,内部对每个 key 依次调用 delete({ key }),自动触发实例销毁与内部映射清理。 |
| getDevices | 获取所有已注册设备实例的浅拷贝,以 key 为索引。 常用于需要直接操作设备实例而非通过 Hooks 的场景,例如在事件回调中遍历所有设备。 |
| isAllInitialized | 检查所有已添加设备是否已初始化完成。 |
| destroy | 销毁多设备管理器:注销所有全局事件监听器、移除全部 change 事件订阅、销毁并清理所有设备实例与内部映射。 |