watchUtils

用于监视访问器属性的各种实用工具和方便函数。

方法概述

  • init():监视属性的更改并使用属性的初始值调用回调。
  • on():监视属性的更改,并根据需要自动将给定事件的事件处理程序附加和分离到属性值。
  • once():监视属性的更改一次。
  • pausable():监视属性的更改。
  • watch():监视属性的更改。
  • when():监视一个属性实现。
  • whenDefined():当监视属性是否已定义。
  • whenDefinedOnce():当查看属性是否已定义一次。
  • whenEqual():当监视属性是否与给定值相等。
  • whenEqualOnce():当监视属性是否与给定值相等。
  • whenFalse():当监视属性变成false。
  • whenFalseOnce():监视属性变成false的一次。
  • whenNot():监视属性变falsy。
  • whenNotOnce():查看属性是否有问题。
  • whenOnce():观察属性变成真实的一次。
  • whenTrue():观察属性成为true。
  • whenTrueOnce():监视属性变成true的一次。
  • whenUndefined():监视属性是否变为未定义。
  • whenUndefinedOnce():查看属性是否变为未定义一次。

方法详情

  • init(obj, propertyName, callback):监视属性的更改并使用属性的初始值调用回调。参数
    • obj :包含要监视的属性的对象。
    • propertyName :要监视的属性的名称。
    • callback :当属性更改时,要使用属性的初始值调用的函数。
  • on(obj, propertyName, eventName, eventHandler, attachedHandler, detachedHandler):监视属性的更改,并根据需要自动将给定事件的事件处理程序附加和分离到属性值。attachedHandler和detachedHandler是可选的,如果提供,它们将分别在附加和分离事件处理程序时被调用。参数
    • obj :包含要监视的属性的对象。
    • propertyName :要监视的属性的名称。
    • eventName :附加事件处理程序的事件名称。
    • eventHandler :事件处理程序回调函数。
    • attachedHandler :每次附加事件处理程序时调用的回调。
    • detachedHandler :每次分离事件处理程序时调用的回调。
  • once(obj, propertyName, callback):监视属性初次更改。在第一次调用回调后,返回的监视操作将被删除。返回的操作额外实现了Promise接口,并可用于创建Promise链来异步处理属性值变为真值。promise结果是一个包含value、oldValue、propertyName和target的对象。参数
    • obj :包含要监视的属性的对象。
    • propertyName :要监视的属性的名称。
    • callback :属性更改时要调用的函数。
  • pausable(obj, propertyName, callback):监视属性的变化。可以暂停(并恢复)返回的操作,以临时阻止在属性更改时调用回调函数。参数
    • obj :包含要监视的属性的对象。
    • propertyName :要监视的属性的名称。
    • callback :属性更改时要调用的函数。
  • watch(obj, propertyName, callback):监视属性的变化。这是access .watch()的别名,是为了完整性而提供的。参数
    • obj :包含要监视的属性的对象。
    • propertyName :要监视的属性的名称。
    • callback :属性更改时要调用的函数。
  • when(obj, propertyName, callback):监视属性实现。与watchUtils一样,如果属性实现,回调函数将被初始调用。参数
    • obj :包含要监视的属性的对象。
    • propertyName :要监视的属性的名称。
    • callback :属性更改时要调用的函数。
  • whenDefined(obj, propertyName, callback):看一个属性成为defined。与init()一样,如果属性最初定义,则调用回调。参数
    • obj :包含要监视的属性的对象。
    • propertyName :要监视的属性的名称。
    • callback :属性更改时要调用的函数。
  • whenDefinedOnce(obj, propertyName, callback):一旦监视属性实现。与init()一样,如果属性最初定义,则调用回调。在第一次调用回调后,返回的监视操作将被删除。返回的操作额外实现了Promise接口,并可用于创建Promise链来异步处理即将定义的属性值。promise结果是一个包含value、oldValue、propertyName和target的对象。参数
    • obj :包含要监视的属性的对象。
    • propertyName :要监视的属性的名称。
    • callback :属性更改时要调用的函数。
  • whenEqual(obj, propertyName, value, callback):监视给定属性的值等于所提供的值。给定属性的值等于所提供的值时,回调函数将触发。参数
    • obj :包含要监视的属性的对象。
    • propertyName :要监视的属性的名称。
    • value :要用给定属性的值进行测试的值。
    • callback :当属性等于给定值时调用的函数。

watchUtils.whenEqual(slider, "values.0", 50, function(){
 
});

watchUtils.whenEqual(slider, "state", "dragging", function(){
 
});
  • whenEqualOnce(obj, propertyName, value, callback):监视与给定值相等的一种属性。当给定的属性第一次等于给定的值时,回调函数将触发。在第一次调用回调后,返回的监视操作将被删除。返回的操作额外实现了Promise接口,并可用于创建Promise链来异步处理变为false的属性值。promise结果是一个包含value、oldValue、propertyName和target的对象。参数
    • obj :包含要监视的属性的对象。
    • propertyName :要监视的属性的名称。
    • value :要用给定属性的值进行测试的值。
    • callback :当属性等于给定值时调用的函数。

watchUtils.whenEqualOnce(slider, "state", "disabled", function(){
});
  • whenFalse(obj, propertyName, callback):监视属性变成false。与init()一样,如果属性初始值为false,则调用回调。参数
    • obj :包含要监视的属性的对象。
    • propertyName :要监视的属性的名称。
    • callback :属性更改时要调用的函数。
  • whenFalseOnce(obj, propertyName, callback):监视属性变false一次。与init()一样,如果属性初始值为false,则调用回调。在第一次调用回调后,返回的监视操作将被删除。返回的操作额外实现了Promise接口,并可用于创建Promise链来异步处理变为false的属性值。promise结果是一个包含value、oldValue、propertyName和target的对象。参数
    • obj :包含要监视的属性的对象。
    • propertyName :要监视的属性的名称。
    • callback :属性更改时要调用的函数。
  • whenNot(obj, propertyName, callback):监视一个属性成为falsy。与watchUtils一样,如果属性成为falsy,回调函数也会被初始调用。参数
    • obj :包含要监视的属性的对象。
    • propertyName :要监视的属性的名称。
    • callback :属性更改时要调用的函数。
  • whenNotOnce(obj, propertyName, callback):一旦监视属性变成假的。与init()一样,如果属性一开始是错误的,就会调用回调。返回的监视操作在第一次调用回调后被删除。返回的错误另外实现了Promise接口,并可用于创建Promise链来异步地处理变假的属性值。promise结果是一个包含value、oldValue、propertyName和target的对象。参数
    • obj :包含要监视的属性的对象。
    • propertyName:要监视的属性的名称。
    • callback :属性更改时要调用的函数。
  • whenOnce(obj, propertyName, callback):监视财属性成真实的一次。与init()一样,如果属性一开始是真实的,就会调用回调。返回的监视操作在第一次调用回调后被删除。返回的操作另外实现了Promise接口,并可用于创建Promise链来异步处理属性值变为true。promise结果是一个包含value、oldValue、propertyName和target的对象。参数
    • obj :包含要监视的属性的对象。
    • propertyName :要监视的属性的名称。
    • callback :属性更改时要调用的函数。
  • whenTrue(obj, propertyName, callback):监视一个属性成为true。与init()一样,如果属性一开始为真,就会调用回调。参数
    • obj :包含要监视的属性的对象。
    • propertyName :要监视的属性的名称。
    • callback :属性更改时要调用的函数。
  • whenTrueOnce(obj, propertyName, callback):监视一个属性变成true。与init()一样,如果属性一开始为真,就会调用回调。返回的监视操作在第一次调用回调后被删除。返回的操作另外实现了Promise接口,并可用于创建Promise链来异步地处理变为true的属性值。promise结果是一个包含value、oldValue、propertyName和target的对象。参数
    • obj :包含要监视的属性的对象。
    • propertyName :要监视的属性的名称。
    • callback :属性更改时要调用的函数。
  • whenUndefined(obj, propertyName, callback):监视一个属性变成undefined。与init()一样,如果属性最初未定义,则调用回调。参数
    • obj :包含要监视的属性的对象。
    • propertyName :要监视的属性的名称。
    • callback :属性更改时要调用的函数。

whenUndefinedOnce(obj, propertyName, callback):监视一个属性变成undefined一次。与init()一样,如果属性最初未定义,则调用回调。返回的监视操作在第一次调用回调后被删除。返回的操作另外实现了Promise接口,并可用于创建Promise链来异步地处理变成undefined的属性值。promise结果是一个包含value、oldValue、propertyName和target的对象。参数

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

propertyName :要监视的属性的名称。

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

类型定义

  • EventAttachedCallback(target, propName, obj, eventName):附加或分离事件处理程序时调用的回调。参数
    • target :附加事件操作的目标对象。
    • propName :监视的属性。
    • obj :监视的对象。
    • eventName :事件的名称。
  • PausableWatchHandle:表示在对象调用watch()时创建的监视。属性
    • remove :移除监视操作。
    • pause :暂停操作,防止更改调用相关的回调。
    • resume :恢复暂停的操作。

var handle = watchUtils.pausable(map, 'basemap', function(newVal){
  // 每次地图底图值变化会被宰控制台打印出来。
  console.log("new basemap: ", newVal);
});
// 当在监视操作上调用pause()时,由
监视不再被调用,但仍可供以后使用
handle.pause();
// 当在监视操作上调用resume()时,回调将继续
每次被监视的属性更改时触发。
handle.resume();
// 当在监视操作上调用remove()时,地图不再监视basemap的变化
handle.remove();
  • PromisedWatchHandle:表示实现Promise接口的监视,该接口是在使用任何watchOnce实用程序函数时创建的。属性
    • remove :移除监视操作。
    • catch :添加在promise 被拒绝时调用的回调。
    • then :添加要在解析promise 时调用的回调。

watchUtils.whenOnce(view, "ready")
 .then(function(result) {
    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");
  });

版权声明:
作者:Gomo
链接:https://www.develophm.com/index.php/watchutils/953/
来源:开发之家
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>