Methods
addListener(names, callback) → {EventSubscription}
监听属性变化事件
Parameters:
Name | Type | Description |
---|---|---|
names |
* | 要监听的属性名, 可以为string 或数组, 如果为*则表示监听所有的属性变化 |
callback |
* |
Examples
const eventSubscription = myDeviceProperties.addListener("prop1", (deviceProperties)=>{...})
...
eventSubscription.remove()
const sub = myDeviceProperties.addListener("*", (deviceProperties)=>{...})
...
sub.remove()
const sub = myDeviceProperties.addListener(["prop1", "prop2"], (deviceProperties)=>{...})
...
sub.remove()
clear() → {IProperties}
清除缓存并删除所有的事件监听
getProperties(…names) → {Map.<string, object>}
批量获取属性的 Map
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
names |
* |
<repeatable> |
属性名 |
getProperty(name)
获取属性
Parameters:
Name | Type | Description |
---|---|---|
name |
* |
getPropertyNames() → {Set.<string>}
获取所有的属性名
hasProperty(name) → {boolean}
判断是否存在某个属性
Parameters:
Name | Type | Description |
---|---|---|
name |
* |
isPropertyChanged(name) → {boolean}
某个属性值是否被改变过
Parameters:
Name | Type | Description |
---|---|---|
name |
* |
notifyPropertiesChanged(…names) → {IProperties}
检查并触发属性变化事件, 一般情况下, 在设置了新的属性数值后, 应该调用此方法触发监听事件
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
names |
* |
<repeatable> |
属性名, 如果为空或 names[0]=="*" 则自动检查所有的属性变化 |
Examples
myDeviceProperties.notifyPropertiesChanged()
myDeviceProperties.notifyPropertiesChanged("*")
myDeviceProperties.notifyPropertiesChanged("prop1", "prop2")
removeAllListeners() → {IProperties}
删除所有的事件监听
removeAllProperties() → {IProperties}
删除所有属性
removeListeners(…names) → {IProperties}
删除属性相关的事件
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
names |
* |
<repeatable> |
属性名, 如果 names[0] == "*", 表示删除所有事件监听 |
removeProperties(…names) → {IProperties}
删除一系列属性
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
names |
Array.<string> |
<repeatable> |
如果第一个 name 为*, 则表示删除所有属性 |
removeProperty(name) → {IProperties}
删除属性
Parameters:
Name | Type | Description |
---|---|---|
name |
string | 属性名称, 如果为*则表示删除所有属性 |
setProperties(nameValues, nameConvertor)
批量设置属性值
Parameters:
Name | Type | Default | Description |
---|---|---|---|
nameValues |
* | -属性数值map, 可以为Map<string, object>或object |
|
nameConvertor |
function | null | -转换属性名, 如果没有则不转换 |
Examples
Map map = new Map();
map.set("a", 1)
map.set("b", 2)
myDeviceProperties.setProperties(map, n=>n.startsWith("prop.")?n.substr(5):n)
myDeviceProperties.setProperties({a:1, "b":2})
setProperty(name, value) → {IProperties}
设置属性, 同时将设置属性数值被改变
Parameters:
Name | Type | Description |
---|---|---|
name |
* | |
value |
* |
triggerListeners(…names) → {IProperties}
强制触发属性相关事件,但不会检查相关属性是否已经改变
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
names |
* |
<repeatable> |
如果names[0]=="*"则表示触发所有的事件 |