watchUtils

AMD: require(["geoscene/core/watchUtils"], (watchUtils) => { /* code goes here */ });
ESM: import * as watchUtils from "@geoscene/core/core/watchUtils";
类: geoscene/core/watchUtils
起始版本:GeoScene Maps SDK for JavaScript 4.0
已弃用从 4.24 版开始。请改为使用 reactiveUtils

用于侦听 Accessor 属性的各种实用程序和便利函数。

另请参阅

方法概述

名称 返回值类值 描述 对象
WatchHandle

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

更多详情
watchUtils
WatchHandle

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

更多详情
watchUtils
PromisedWatchHandle

侦听属性的更改一次。

更多详情
watchUtils
PausableWatchHandle

监听属性的更改。

更多详情
watchUtils
WatchHandle

监听属性的更改。

更多详情
watchUtils
WatchHandle

侦听属性是否变为真值。

更多详情
watchUtils
WatchHandle

侦听属性是否变为 defined

更多详情
watchUtils
PromisedWatchHandle

侦听属性是否只 defined 一次。

更多详情
watchUtils
WatchHandle

侦听属性是否与给定 value 相等。

更多详情
watchUtils
PromisedWatchHandle

侦听属性是否与给定 value 相等。

更多详情
watchUtils
WatchHandle

侦听属性是否变为 false

更多详情
watchUtils
PromisedWatchHandle

侦听属性是否只 false 一次。

更多详情
watchUtils
WatchHandle

侦听属性是否变为 falsy。

更多详情
watchUtils
PromisedWatchHandle

侦听属性是否只变为 falsy 一次。

更多详情
watchUtils
PromisedWatchHandle

侦听属性是否只变为真值一次。

更多详情
watchUtils
WatchHandle

侦听属性是否变为 true

更多详情
watchUtils
PromisedWatchHandle

侦听属性是否只 true 一次。

更多详情
watchUtils
WatchHandle

侦听属性是否变为 undefined

更多详情
watchUtils
PromisedWatchHandle

侦听属性是否只 undefined 一次。

更多详情
watchUtils

方法详细说明

init(obj, propertyName, callback){WatchHandle}
已弃用自 4.24。请改为使用 reactiveUtils.watch()

侦听属性的更改,并使用该属性的初始值调用回调。建议迁移到 reactiveUtils.watch(() => obj.propertyName, callback, { initial: true })

参数

包含要侦听的属性的对象。

propertyName String|String[]

要侦听的属性的名称。

callback watchCallback

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

返回
类型 描述
WatchHandle 侦听句柄。
on(obj, propertyName, eventName, eventHandler, attachedHandler, detachedHandler){WatchHandle}
已弃用自 4.24。请改为使用 reactiveUtils.on()

侦听属性的更改,并根据需要自动将给定事件的事件处理程序附加和分离到属性值。建议迁移到 reactiveUtils.on(() => obj.propertyName, eventName, eventHandler, options)

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

参数

包含要侦听的属性的对象。

propertyName String|String[]

要侦听的属性的名称。

eventName String

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

eventHandler Function

事件处理程序回调函数。

attachedHandler EventAttachedCallback
optional

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

detachedHandler EventAttachedCallback
optional

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

返回
类型 描述
WatchHandle 侦听句柄。
once(obj, propertyName, callback){PromisedWatchHandle}
已弃用自 4.24。请改为使用 reactiveUtils.once()

侦听属性的更改一次。返回的侦听句柄在首次调用回调后被移除。建议迁移到 reactiveUtils.once(() => obj.propertyName, abortSignal)

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

参数

包含要侦听的属性的对象。

propertyName String|String[]

要侦听的属性的名称。

callback watchCallback
optional

属性发生变化时要调用的函数。

返回
类型 描述
PromisedWatchHandle 实现 Promise 接口的监听句柄。
pausable(obj, propertyName, callback){PausableWatchHandle}
已弃用自 4.24 始。

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

参数

包含要侦听的属性的对象。

propertyName String|String[]

要侦听的属性的名称。

callback watchCallback
optional

属性发生变化时要调用的函数。

返回
类型 描述
PausableWatchHandle 可暂停的监听句柄。
watch(obj, propertyName, callback){WatchHandle}
已弃用自 4.24。请改为使用 reactiveUtils.watch()

监听属性的更改。这是 Accessor.watch() 的别名。建议迁移到 reactiveUtils.watch(() => obj.propertyName, callback)

参数

包含要侦听的属性的对象。

propertyName String|String[]

要侦听的属性的名称。

callback watchCallback

属性发生变化时要调用的函数。

返回
类型 描述
WatchHandle 侦听句柄。
另请参阅
when(obj, propertyName, callback){WatchHandle}
已弃用自 4.24。请改为使用 reactiveUtils.when()

侦听属性是否变为真值。建议迁移到 reactiveUtils.when(() => obj.propertyName, callback)

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

参数

包含要侦听的属性的对象。

propertyName String|String[]

要侦听的属性的名称。

callback watchCallback

属性发生变化时要调用的函数。

返回
类型 描述
WatchHandle 侦听句柄。
whenDefined(obj, propertyName, callback){WatchHandle}
已弃用自 4.24。请改为使用 reactiveUtils.when()

侦听属性是否变为 defined。建议迁移到 reactiveUtils.when(() => obj.propertyName !== undefined, callback)

init() 一样,如果最初定义了属性,则会调用回调。

参数

包含要侦听的属性的对象。

propertyName String|String[]

要侦听的属性的名称。

callback watchCallback

属性发生变化时要调用的函数。

返回
类型 描述
WatchHandle 侦听句柄。
whenDefinedOnce(obj, propertyName, callback){PromisedWatchHandle}
已弃用自 4.24。请改为使用 reactiveUtils.whenOnce()

侦听属性是否只 defined 一次。建议迁移到 reactiveUtils.whenOnce(() => obj.propertyName !== undefined, abortSignal)

init() 一样,如果属性最初是 defined,则调用回调。返回的侦听句柄在首次调用回调后被移除。

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

参数

包含要侦听的属性的对象。

propertyName String|String[]

要侦听的属性的名称。

callback watchCallback
optional

属性发生变化时要调用的函数。

返回
类型 描述
PromisedWatchHandle 实现 Promise 接口的监听句柄。
whenEqual(obj, propertyName, value, callback){WatchHandle}
起始版本:GeoScene Maps SDK for JavaScript 4.13
已弃用自 4.24。请改为使用 reactiveUtils.when()

侦听属性是否与给定 value 相等。callback 将在给定属性的值等于提供的值后触发。建议迁移到 reactiveUtils.when(() => obj.propertyName === value, callback)

参数

包含要侦听的属性的对象。

propertyName String

要侦听的属性的名称。

value *

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

callback watchCallback

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

返回
类型 描述
WatchHandle 侦听句柄。
示例
watchUtils.whenEqual(slider, "values.0", 50, function(){
  // do something when the slider's first thumb value is equal to 50
});

watchUtils.whenEqual(slider, "state", "dragging", function(){
  // do something while the user drags the slider thumb(s)
});
whenEqualOnce(obj, propertyName, value, callback){PromisedWatchHandle}
起始版本:GeoScene Maps SDK for JavaScript 4.13
已弃用自 4.24。请改为使用 reactiveUtils.whenOnce()

侦听属性是否与给定 value 相等。建议迁移到 reactiveUtils.whenOnce(() => obj.propertyName === value, abortSignal)

callback 将在给定属性等于第一次提供的值后触发。返回的侦听句柄在首次调用回调后被移除。

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

参数

包含要侦听的属性的对象。

propertyName String

要侦听的属性的名称。

value *

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

callback watchCallback
optional

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

返回
类型 描述
PromisedWatchHandle 实现 Promise 接口的监听句柄。
示例
watchUtils.whenEqualOnce(slider, "state", "disabled", function(){
  // do something when the slider becomes disabled for the first time
});
whenFalse(obj, propertyName, callback){WatchHandle}
已弃用自 4.24。请改为使用 reactiveUtils.when()

侦听属性是否变为 false。建议迁移到 reactiveUtils.when(() => obj.propertyName === false, callback)

init() 一样,如果属性最初是 false,则调用回调。

参数

包含要侦听的属性的对象。

propertyName String|String[]

要侦听的属性的名称。

callback watchCallback

属性发生变化时要调用的函数。

返回
类型 描述
WatchHandle 侦听句柄。
whenFalseOnce(obj, propertyName, callback){PromisedWatchHandle}
已弃用自 4.24。请改为使用 reactiveUtils.whenOnce()

侦听属性是否只 false 一次。建议迁移到 reactiveUtils.whenOnce(() => obj.propertyName === false, abortSignal)

init() 一样,如果属性最初是 false,则调用回调。返回的侦听句柄在首次调用回调后被移除。

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

参数

包含要侦听的属性的对象。

propertyName String|String[]

要侦听的属性的名称。

callback watchCallback
optional

属性发生变化时要调用的函数。

返回
类型 描述
PromisedWatchHandle 实现 Promise 接口的监听句柄。
whenNot(obj, propertyName, callback){WatchHandle}
已弃用自 4.24。请改为使用 reactiveUtils.when()

侦听属性是否变为 falsy。建议迁移到 reactiveUtils.when(() => !obj.propertyName, callback)

watchUtils 一样,如果属性最初为假,则最初调用回调。

参数

包含要侦听的属性的对象。

propertyName String|String[]

要侦听的属性的名称。

callback watchCallback

属性发生变化时要调用的函数。

返回
类型 描述
WatchHandle 侦听句柄。
whenNotOnce(obj, propertyName, callback){PromisedWatchHandle}
已弃用自 4.24。请改为使用 reactiveUtils.whenOnce()

侦听属性是否只变为 falsy 一次。建议迁移到 reactiveUtils.whenOnce(() => obj.propertyName === false, abortSignal)

init() 一样,如果属性最初为假,则会调用回调。返回的侦听句柄在首次调用回调后被移除。

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

参数

包含要侦听的属性的对象。

propertyName String|String[]

要侦听的属性的名称。

callback watchCallback
optional

属性发生变化时要调用的函数。

返回
类型 描述
PromisedWatchHandle 实现 Promise 接口的监听句柄。
whenOnce(obj, propertyName, callback){PromisedWatchHandle}
已弃用自 4.24。请改为使用 reactiveUtils.whenOnce()

侦听属性是否只变为真值一次。建议迁移到 reactiveUtils.whenOnce(() => obj.propertyName, abortSignal)

init() 一样,如果属性最初为真,则会调用回调。返回的侦听句柄在首次调用回调后被移除。

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

参数

包含要侦听的属性的对象。

propertyName String|String[]

要侦听的属性的名称。

callback watchCallback
optional

属性发生变化时要调用的函数。

返回
类型 描述
PromisedWatchHandle 实现 Promise 接口的监听句柄。
whenTrue(obj, propertyName, callback){WatchHandle}
已弃用自 4.24。请改为使用 reactiveUtils.when()

侦听属性是否变为 true。建议迁移到 reactiveUtils.when(() => obj.propertyName === true, callback)

init() 一样,如果属性最初是 true,则调用回调。

参数

包含要侦听的属性的对象。

propertyName String|String[]

要侦听的属性的名称。

callback watchCallback

属性发生变化时要调用的函数。

返回
类型 描述
WatchHandle 侦听句柄。
whenTrueOnce(obj, propertyName, callback){PromisedWatchHandle}
已弃用自 4.24。请改为使用 reactiveUtils.whenOnce()

侦听属性是否只 true 一次。建议迁移到 reactiveUtils.when(() => obj.propertyName === true, callback, { once: true })

init() 一样,如果属性最初是 true,则调用回调。返回的侦听句柄在首次调用回调后被移除。

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

参数

包含要侦听的属性的对象。

propertyName String|String[]

要侦听的属性的名称。

callback watchCallback
optional

属性发生变化时要调用的函数。

返回
类型 描述
PromisedWatchHandle 实现 Promise 接口的监听句柄。
whenUndefined(obj, propertyName, callback){WatchHandle}
已弃用自 4.24。请改为使用 reactiveUtils.when()

侦听属性是否变为 undefined。建议迁移到 reactiveUtils.when(() => obj.propertyName === undefined, callback)

init() 一样,如果属性最初是 undefined,则调用回调。

参数

包含要侦听的属性的对象。

propertyName String|String[]

要侦听的属性的名称。

callback watchCallback

属性发生变化时要调用的函数。

返回
类型 描述
WatchHandle 侦听句柄。
whenUndefinedOnce(obj, propertyName, callback){PromisedWatchHandle}
已弃用自 4.24。请改为使用 reactiveUtils.whenOnce()

侦听属性是否只 undefined 一次。建议迁移到 reactiveUtils.whenOnce(() => obj.propertyName === undefined, abortSignal)

init() 一样,如果属性最初是 undefined,则调用回调。返回的侦听句柄在首次调用回调后被移除。

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

参数

包含要侦听的属性的对象。

propertyName String|String[]

要侦听的属性的名称。

callback watchCallback
optional

属性发生变化时要调用的函数。

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

类型定义

EventAttachedCallback(target, propName, obj, eventName)
已弃用从 4.24 版开始。请改为使用 reactiveUtils.ReactiveListenerChangeCallback()

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

参数
target *
optional

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

propName String
optional

监听的属性。

optional

监听的对象。

eventName String
optional

事件名称。

PausableWatchHandle Object
已弃用从 4.24 版开始。

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

属性
remove Function

移除侦听句柄。

pause Function

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

resume Function

恢复暂停的句柄。

示例
let handle = watchUtils.pausable(map, 'basemap', (newVal) => {
  // Each time the value of `map.basemap` changes, it is logged in the console
  console.log("new basemap: ", newVal);
});

// When pause() is called on the watch handle, the callback represented by the
// watch is no longer invoked, but is still available for later use
handle.pause();

// When resume() is called on the watch handle, the callback resumes
// firing each time the watched property changes.
handle.resume();

// When remove() is called on the watch handle, the map no longer watches for changes to basemap
handle.remove();
PromisedWatchHandle Object
已弃用从 4.24 版开始。请改为使用 Promise

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

属性
remove Function

移除侦听句柄。

catch Function

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

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

示例
// Animate to the fullExtent of the first layer as soon as the view is
// ready.
watchUtils.whenOnce(view, "ready")
 .then((result) => {
    // Ensure the layer is loaded before accessing its fullExtent
    return view.map.layers.getItemAt(0).load();
  })
  .then((layer) => {
    // Animate to the full extent of the layer
    return view.goTo(layer.fullExtent);
  })
  .then(() => {
    // Animation is finished here
    console.log("Animation to first layer extent is finished");
  });

您的浏览器不再受支持。请升级您的浏览器以获得最佳体验。请参阅浏览器弃用帖子以获取更多信息