当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


JavaScript ArcGIS promiseUtils.debounce用法及代码示例


基本信息

以下是所在类或对象的基本信息。

AMD: require(["esri/core/promiseUtils"], (promiseUtils) => { /* code goes here */ });

ESM: import * as promiseUtils from "@arcgis/core/core/promiseUtils";

对象: esri/core/promiseUtils

自从:用于 JavaScript 4.2 的 ArcGIS API

用法说明

promiseUtils.debounce函数(或属性)的定义如下:

debounce (callback) {Function} static


自从:ArcGIS 适用于 JavaScript 4.12 的 API

用于确保输入函数一次不会同时被多次调用的实用程序。这对于高度交互的应用程序很有用,例如对 mouse-move 或 mouse-drag 事件执行统计查询的应用程序。您可以"debounce" 或取消函数执行,而不是对每个此类事件执行查询,直到相同函数调用的先前执行完成。这提高了此类应用程序的性能和用户体验。

参数:

类型说明
callback Function

防止在执行对同一函数的先前调用期间执行的函数。这通常是可以在 mouse-move 或 mouse-drag 事件上调用的函数。

返回:

类型 说明
Function 与回调具有相同签名的函数。

例子:

// Queries a layer for the count of features that intersect a
// 1 km buffer of the pointer location. The debounce() method
// prevents the updateStatistics function from executing before
// a previous invocation of the same function finishes.
const updateStatistics = promiseUtils.debounce(function (geometry) {
  return layerView.queryFeatures({
    geometry,
    distance: 1,
    units: "kilometers",
    outStatistics: [{
      onStatisticField: "*",
      outStatisticFieldName: "feature_count",
      statisticType: "count"
    }]
  }).then(function(featureSet) {
    console.log(`Feature Count: ${featureSet.features[0].attributes["feature_count"]}`);
  });
});

view.on("drag", (event) => updateStatistics(view.toMap(event)));

相关用法


注:本文由纯净天空筛选整理自arcgis.com大神的英文原创作品 promiseUtils.debounce。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。