MonitorDataComponent()

MonitorDataComponent监控数据组件。

new MonitorDataComponent()

监控数据组件,用于管理和订阅对象的属性变化。
Example
// 订阅任何数据变化
let watcher1 = obj.monitorData.subscribe((ev) => {
  console.log(ev.data); // 变化的数据
  console.log(obj.monitorData); // 完整的数据
});

// 订阅特定数据变化
let watcher2 = obj.monitorData.subscribe(["power", "freq"], (ev) => {
  console.log(ev.data["power"]);
  console.log(ev.data["freq"]);
});

// 订阅单个数据变化
let watcher3 = obj.monitorData.subscribe("power", (ev) => {
  console.log(ev.data["power"]);
});

// 获取监控属性
let power = obj.monitorData["power"];
let freq = obj.monitorData["freq"];

// 设置监控属性
obj.monitorData.setAttributes({
  "power": 3200,
  "brand": "ant",
  "freq": 95
});

// 取消特定订阅
obj.monitorData.unsubscribe(watcher1);

// 取消所有订阅
obj.monitorData.unsubscribeAll();

// 清空所有属性(不会取消订阅)
obj.monitorData.clearAttributes();

Extends

Members

active :boolean

激活或停用组件。
Overrides:

app :THING.App

获取应用程序。
Overrides:

object :THING.BaseObject

获取对象。
Overrides:

onActiveChange :OnActiveChangeComponentCallback

活动状态改变时的回调函数。
Overrides:

onAfterAdd :OnAfterAddComponentCallback

添加之后。
Overrides:

onAfterAddChild :OnAddChildComponentCallback

添加子对象之后的回调函数。
Overrides:

onAfterRemove :OnAfterRemoveComponentCallback

移除之后。
Overrides:

onAfterRemoveChild :OnRemoveChildComponentCallback

移除子对象之后的回调函数。
Overrides:

onBeforeAdd :OnBeforeAddComponentCallback

添加之前。
Overrides:

onBeforeAddChild :OnAddChildComponentCallback

添加子对象之前的回调函数。
Overrides:

onBeforeRemove :OnBeforeRemoveComponentCallback

移除之前。
Overrides:

onBeforeRemoveChild :OnRemoveChildComponentCallback

移除子对象之前的回调函数。
Overrides:

onCopy :OnCopyComponentCallback

复制时的回调函数。
Overrides:

onExport :OnExportComponentCallback

导出数据时。
Overrides:

onImport :OnImportComponentCallback

导入数据时。
Overrides:

onInit :OnInitComponentCallback

初始化时的回调函数。
Overrides:

onLoadResource :OnLoadResourceComponentCallback

加载资源时的回调函数。
Overrides:

onParentChange :OnParentChangeComponentCallback

改变父对象时的回调函数。
Overrides:

onRefresh :OnRefreshComponentCallback

刷新时的回调函数。
Overrides:

onResize :OnResizeComponentCallback

调整大小时的回调函数。
Overrides:

onUnloadResource :OnUnloadResourceComponentCallback

卸载资源时的回调函数。
Overrides:

onUpdate :OnUpdateComponentCallback

更新时的回调函数。
Overrides:

onVisibleChange :OnVisibleChangeComponentCallback

可见性改变时的回调函数。
Overrides:

Methods

clearAttributes()

清除所有被监控的属性
Example
// 清除所有监控属性
obj.monitorData.clearAttributes();

onRemove()

当移除组件时。
Overrides:

setAttributes(name, valueopt)

设置一个或多个属性
Parameters:
Name Type Attributes Description
name string | object 属性名或包含多个属性的对象
value * <optional>
如果name是字符串,则为要设置的值
Example
// 设置单个属性
obj.monitorData.setAttributes("power", 3200);

// 设置多个属性
obj.monitorData.setAttributes({
  power: 3200,
  freq: 95,
  brand: "ant"
});

// 使用路径设置嵌套属性
obj.monitorData.setAttributes("status/power", 3200);

subscribe(key, fnopt) → {object|Array.<object>}

订阅属性变化
Parameters:
Name Type Attributes Description
key string | Array.<string> | function 要订阅的属性名(可以是数组),或者用于所有变化的回调函数
fn function <optional>
如果key不是函数,则为回调函数
Returns:
object | Array.<object> - 订阅对象或订阅对象数组
Example
// 订阅所有变化
let watcher1 = obj.monitorData.subscribe((ev) => {
  console.log(ev.data); // 变化的数据
});

// 订阅多个属性
let watcher2 = obj.monitorData.subscribe(["power", "freq"], (ev) => {
  console.log(ev.data.power);
  console.log(ev.data.freq);
});

// 订阅单个属性
let watcher3 = obj.monitorData.subscribe("power", (ev) => {
  console.log(ev.data.power);
});

unsubscribe(subscriber)

取消订阅属性变化
Parameters:
Name Type Description
subscriber object | Array.<object> 由subscribe()返回的订阅对象或订阅对象数组
Example
// 取消单个订阅
obj.monitorData.unsubscribe(watcher1);

// 取消多个订阅
obj.monitorData.unsubscribe([watcher1, watcher2]);

unsubscribeAll()

取消所有属性变化的订阅
Example
// 取消所有订阅
obj.monitorData.unsubscribeAll();