watchUtils

AMD: require(["geoscene/core/watchUtils"], (watchUtils) => { /* 代码 */ });
ESM: import * as watchUtils from "@geoscene/core/core/watchUtils";
对象: geoscene/core/watchUtils
起始版本: GeoScene API for JavaScript 4.22

用于监视 Accessor 属性的各种实用程序和便利功能。

方法列表

名称 返回值类型 描述 对象
WatchHandle更多信息

监视属性的更改,并使用该属性的初始值调用回调。

更多信息watchUtils
WatchHandle更多信息

监视属性的更改,并根据需要自动将给定事件的事件处理程序附加和分离到属性值。

更多信息watchUtils
PromisedWatchHandle更多信息

监视属性一次更改。

更多信息watchUtils
PausableWatchHandle更多信息

监视属性的更改。

更多信息watchUtils
WatchHandle更多信息

监视属性的更改。

更多信息watchUtils
WatchHandle更多信息

监视属性变为真值。

更多信息watchUtils
WatchHandle更多信息

监视属性变为 defined

更多信息watchUtils
PromisedWatchHandle更多信息

监视一次属性变为 defined

更多信息watchUtils
WatchHandle更多信息

监视属性是否与给定的相等。

更多信息watchUtils
PromisedWatchHandle更多信息

监视属性是否与给定的相等。

更多信息watchUtils
WatchHandle更多信息

监视属性变为 false

更多信息watchUtils
PromisedWatchHandle更多信息

监视一次属性变为 false

更多信息watchUtils
WatchHandle更多信息

监视属性变为 falsy 。

更多信息watchUtils
PromisedWatchHandle更多信息

Watches a property for becoming falsy once.

更多信息watchUtils
PromisedWatchHandle更多信息

观察一次属性变为假。

更多信息watchUtils
WatchHandle更多信息

观察属性变为 true

更多信息watchUtils
PromisedWatchHandle更多信息

观察一次属性变为 true

更多信息watchUtils
WatchHandle更多信息

Watches a property for becoming undefined.

更多信息watchUtils
PromisedWatchHandle更多信息

观察一次属性变为 undefined

更多信息watchUtils

方法详细说明

init(obj, propertyName, callback){WatchHandle}static

监视属性的更改,并使用该属性的初始值调用回调。

参数:
obj Accessor

包含要监视的属性的对象。

propertyName String|String[]

要监视的属性的名称。

callback watchCallback

当属性更改时,要使用属性的初始值调用的函数。

返回值:
类型 描述
WatchHandle 监听句柄。
on(obj, propertyName, eventName, eventHandler, attachedHandler, detachedHandler){WatchHandle}static

监视属性的更改,并根据需要自动将给定事件的事件处理程序附加和分离到属性值。

附加的处理程序和分离的处理程序是可选的,如果提供,则将在分别附加和分离事件处理程序时调用。

参数:
obj Accessor

包含要监视的属性的对象。

propertyName String|String[]

要监视的属性的名称。

eventName String

要为其附加事件处理程序的事件的名称。

eventHandler Function

事件处理程序回调函数。

attachedHandler EventAttachedCallback
optional

每次附加事件处理程序时调用回调。

detachedHandler EventAttachedCallback
optional

每次附加事件处理程序时调用回调。

返回值:
类型 描述
WatchHandle 监听句柄。
once(obj, propertyName, callback){PromisedWatchHandle}static

监视属性一次更改。返回的监视句柄在首次调用回调后被删除。

返回的句柄还实现了 Promise 接口,并可用于创建一个 Promise 链以异步处理属性值变为真。promise 结果是一个包含 valueoldValuepropertyNametarget 的对象。

参数:
obj Accessor

包含要监视的属性的对象。

propertyName String|String[]

要监视的属性的名称。

callback watchCallback
optional

属性更改时要调用的函数。

返回值:
类型 描述
PromisedWatchHandle 一个实现 Promise 接口的监听句柄。 
pausable(obj, propertyName, callback){PausableWatchHandle}static

监视属性的更改。可以暂停(并恢复)返回的句柄,以暂时防止在属性更改时调用回调。

参数:
obj Accessor

包含要监视的属性的对象。

propertyName String|String[]

要监视的属性的名称。

callback watchCallback
optional

属性更改时要调用的函数。

返回值:
类型 描述
PausableWatchHandle 可暂停的监听句柄。
watch(obj, propertyName, callback){WatchHandle}static

监视属性的更改。这是 Accessor.watch() 的别名,为完整性而提供。

参数:
obj Accessor

包含要监视的属性的对象。

propertyName String|String[]

要监视的属性的名称。

callback watchCallback

属性更改时要调用的函数。

返回值:
类型 描述
WatchHandle 监听句柄。
另参阅:
when(obj, propertyName, callback){WatchHandle}static

与 watchUtils 一样,如果属性最初是真,则最初调用回调。

参数:
obj Accessor

包含要监视的属性的对象。

propertyName String|String[]

要监视的属性的名称。

callback watchCallback

属性更改时要调用的函数。

返回值:
类型 描述
WatchHandle 监听句柄。
whenDefined(obj, propertyName, callback){WatchHandle}static

观察属性变为 defined。 与 init() 一样,如果最初定义了属性,则会调用回调。

参数:
obj Accessor

包含要监视的属性的对象。

propertyName String|String[]

要监视的属性的名称。

callback watchCallback

属性更改时要调用的函数。

返回值:
类型 描述
WatchHandle 监听句柄。
whenDefinedOnce(obj, propertyName, callback){PromisedWatchHandle}static

观察一次属性变为 defined。 与 init() 一样,如果属性最初是 defined,则调用回调。 返回的监视句柄在第一次调用回调后被移除。

返回的句柄还实现了 Promise 接口,并可用于创建一个 Promise 链来异步处理已定义的属性值。 promise 结果是一个包含 valueoldValuepropertyNametarget 的对象。

参数:
obj Accessor

包含要监视的属性的对象。

propertyName String|String[]

要监视的属性的名称。

callback watchCallback
optional

属性更改时要调用的函数。

返回值:
类型 描述
PromisedWatchHandle 一个实现 Promise 接口的监听句柄。 
whenEqual(obj, propertyName, value, callback){WatchHandle}static
起始版本: GeoScene API for JavaScript 4.22

观察属性是否与给定的相等。 callback 将在给定属性的值等于提供的值后触发。

参数:
obj Accessor

包含要监视的属性的对象。

propertyName String

要监视的属性的名称。

value *

要使用给定属性的值进行测试的值。

callback watchCallback

当属性等于给定值时要调用的函数。

返回值:
类型 描述
WatchHandle 监听句柄。
示例代码:
watchUtils.whenEqual(slider, "values.0", 50, function(){
  // 当滑块的第一个拇指值等于 50 时进行操作
});

watchUtils.whenEqual(slider, "state", "dragging", function(){
  // 在用户拖动滑块拇指时执行某些操作
});
whenEqualOnce(obj, propertyName, value, callback){PromisedWatchHandle}static
起始版本: GeoScene API for JavaScript 4.22

观察属性是否与给定的相等。 callback 将在给定属性第一次等于提供的值后触发。 返回的监视句柄在第一次调用回调后被移除。

返回的句柄还实现了 Promise 接口,并且可以用来创建一个 Promise 链来异步处理一个属性值变得等于一个值。promise 结果是一个包含 valueoldValuepropertyNametarget 的对象。

参数:
obj Accessor

包含要监视的属性的对象。

propertyName String

要监视的属性的名称。

value *

要使用给定属性的值进行测试的值。

callback watchCallback
optional

要使用给定属性的值进行测试的值。

返回值:
类型 描述
PromisedWatchHandle 一个实现 Promise 接口的监听句柄。 
示例代码:
watchUtils.whenEqualOnce(slider, "state", "disabled", function(){
  // 当滑块第一次被禁用时,请执行某些操作
});
whenFalse(obj, propertyName, callback){WatchHandle}static

监视属性是否变为 false。 与 init() 一样,如果属性最初为 false,则调用回调。

参数:
obj Accessor

包含要监视的属性的对象。

propertyName String|String[]

要监视的属性的名称。

callback watchCallback

属性更改时要调用的函数。

返回值:
类型 描述
WatchHandle 监听句柄。
whenFalseOnce(obj, propertyName, callback){PromisedWatchHandle}static

观察一个属性是否变为 false 一次。 与 init() 一样,如果属性最初为 false,则调用回调。 返回的监视句柄在第一次调用回调后被移除。

返回的句柄额外实现了 Promise 接口,可用于创建一个 Promise 链来异步处理属性值变为 false。 promise 结果是一个包含 valueoldValuepropertyNametarget 的对象。

参数:
obj Accessor

包含要监视的属性的对象。

propertyName String|String[]

要监视的属性的名称。

callback watchCallback
optional

属性更改时要调用的函数。

返回值:
类型 描述
PromisedWatchHandle 一个实现 Promise 接口的监听句柄。 
whenNot(obj, propertyName, callback){WatchHandle}static

观察一个属性是否变得虚假。 与 watchUtils 一样,如果属性最初是假,则最初调用回调。

参数:
obj Accessor

包含要监视的属性的对象。

propertyName String|String[]

要监视的属性的名称。

callback watchCallback

属性更改时要调用的函数。

返回值:
类型 描述
WatchHandle 监听句柄。
whenNotOnce(obj, propertyName, callback){PromisedWatchHandle}static

监视属性变成 false。与 init() 一样,如果属性最初为假,则调用回调。 第一次调用回调后,将删除返回的监视句柄。

返回的句柄还实现了 Promise 接口,可用于创建一个 Promise 链来异步处理变为假的属性值。promise 结果是一个包含 valueoldValuepropertyNametarget 的对象。

参数:
obj Accessor

包含要监视的属性的对象。

propertyName String|String[]

要监视的属性的名称。

callback watchCallback
optional

属性更改时要调用的函数。

返回值:
类型 描述
PromisedWatchHandle 一个实现 Promise 接口的监听句柄。 
whenOnce(obj, propertyName, callback){PromisedWatchHandle}static

观察一次属性变为假。 与 init() 一样,如果属性最初为真,则调用回调。 第一次调用回调后,将删除返回的监视句柄。

返回的句柄还实现了 Promise 接口,并可用于创建一个 Promise 链以异步处理属性值变为真。promise 结果是一个包含 valueoldValuepropertyNametarget 的对象。

参数:
obj Accessor

包含要监视的属性的对象。

propertyName String|String[]

要监视的属性的名称。

callback watchCallback
optional

属性更改时要调用的函数。

返回值:
类型 描述
PromisedWatchHandle 一个实现 Promise 接口的监听句柄。 
whenTrue(obj, propertyName, callback){WatchHandle}static

观察属性变为 true。 与 init() 一样,如果属性最初为 true,则调用回调。

参数:
obj Accessor

包含要监视的属性的对象。

propertyName String|String[]

要监视的属性的名称。

callback watchCallback

属性更改时要调用的函数。

返回值:
类型 描述
WatchHandle 监听句柄。
whenTrueOnce(obj, propertyName, callback){PromisedWatchHandle}static

观察一次属性变为 true 。 与 init() 一样,如果属性最初为 true,则调用回调。 第一次调用回调后,将删除返回的监视句柄。

返回的句柄还实现了 Promise 接口,并可用于创建一个 Promise 链以异步处理属性值变为 true。 promise 结果是一个包含 valueoldValuepropertyNametarget 的对象。

参数:
obj Accessor

包含要监视的属性的对象。

propertyName String|String[]

要监视的属性的名称。

callback watchCallback
optional

属性更改时要调用的函数。

返回值:
类型 描述
PromisedWatchHandle 一个实现 Promise 接口的监听句柄。 
whenUndefined(obj, propertyName, callback){WatchHandle}static

监视属性变成 undefined 。 与 init() 一样,如果属性最初为 undefined,则调用回调。

参数:
obj Accessor

包含要监视的属性的对象。

propertyName String|String[]

要监视的属性的名称。

callback watchCallback

属性更改时要调用的函数。

返回值:
类型 描述
WatchHandle 监听句柄。
whenUndefinedOnce(obj, propertyName, callback){PromisedWatchHandle}static

观察一次属性变为 undefined 。 与 init() 一样,如果属性最初为 undefined,则调用回调。 第一次调用回调后,将删除返回的监视句柄。

返回的句柄还实现了 Promise 接口,并可用于创建一个 Promise 链来异步处理变为未定义的属性值。 promise 结果是一个包含 valueoldValuepropertyNametarget 的对象。

参数:
obj Accessor

包含要监视的属性的对象。

propertyName String|String[]

要监视的属性的名称。

callback watchCallback
optional

属性更改时要调用的函数。

返回值:
类型 描述
PromisedWatchHandle 一个实现 Promise 接口的监听句柄。 

类型定义

EventAttachedCallback(target, propName, obj, eventName)

在附加或分离事件处理程序时调用的回调。

参数:
target *
optional

事件句柄附加到的目标对象。

propName String
optional

被监视的财产。

obj Accessor
optional

监视对象。

eventName String
optional

事件名称。

PausableWatchHandle Object

表示当对象调用 watch() 时创建的监视。

属性:
remove Function

移除监听句柄。

pause Function

暂停句柄,防止更改以调用关联的回调。

resume Function

恢复暂停的句柄。

示例代码:
let handle = watchUtils.pausable(map, 'basemap', function(newVal){
  // 每次 `map.basemap` 的值发生变化时,都会记录在控制台中。
console.log("new basemap: ", newVal); }); // 当在watch句柄上调用pause()时,不再调用watch代表的回调,但仍可供以后使用。 handle.pause(); // 当在监视句柄上调用 resume() 时,回调会在每次监视属性更改时继续触发。 handle.resume(); // 在监视句柄上调用 remove() 时,地图不再监视底图的更改。
handle.remove();
PromisedWatchHandle Object

表示实现 Promise 接口的手表,该接口是在使用任何 watchOnce 实用程序函数时创建的。

属性;
remove Function

移除监听句柄。

catch Function

添加要在 Promise 拒绝时调用的回调。

then Function

添加要在 Promise 解析时调用的回调。

示例代码:
// 视图准备好后立即动画到第一层的完整范围。
watchUtils.whenOnce(view, "ready")
 .then(function(result){
    // 确保在访问其 fullExtent 之前加载图层
return view.map.layers.getItemAt(0).load(); }) .then(function(layer){ // 动画到图层的全部范围
return view.goTo(layer.fullExtent); }) .then(function(){ // 动画到此结束
console.log("Animation to first layer extent is finished"); });

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.

Navigated to watchUtils