-
open
(modulePath, options)
{Promise<Connection>}
static
打开与工作人员的连接并使用工作人员框架加载脚本。
参数:
规格:类型 说明 modulePath String一个完全限定的 URL 到一个脚本来执行 worker 框架。
options Object可选的 工人选项。有关对象规格,请参阅下面的属性。
规格:client可选的 定义可从模块访问的 API 的对象。
strategy可选的 默认值:分散式指示如何加载模块。有关可能值的列表,请参见下表。
可能的值 说明 distributed 该模块被加载到每个可用的工作人员中。对Connection 的每次调用都将针对一个可用的工作人员。如果模块在调用之间不维护信息(无状态),请使用此策略。 dedicated 该模块被加载到一个工作人员中。对Connection 的每次调用都将针对同一个工作人员。如果模块维护来自先前调用的信息或主线程和工作线程之间的通信需要有状态,请使用此策略。 local 该模块被加载到主线程中。在使用工作人员框架 API 时使用此策略,同时禁用工作人员的使用。 可能的值:"distributed"|"dedicated"|"local"
signal可选的 AbortSignal 允许可取消的异步作业。如果取消,promise 将被拒绝,并出现名为
AbortError
的错误。另见AbortController。返回:
类型 说明 Promise<Connection> 解析为 Connection 的实例。 例子:
// Set the path for the worker's AMD loader configuration // to a folder called workersFolder. esriConfig.workers.loaderConfig = { paths: { myWorkers: new URL("./workersFolder", document.baseURI).href } }; // load myWorkers/Calculator.js in the workers framework // and invoke its "getMaxNumber" method workers.open(this, "myWorkers/Calculator") .then((connection) => { return connection.invoke("getMaxNumber", [0, 1, 2, 3, 4]); }) .then((result) => { console.log(result); }); //********************************************************* // module: workerFolder/Calculator.js //********************************************************* define([], () => { return { // this function can be invoked from the main thread getMaxNumber: function (number) { return Math.max.apply(null, numbers); } }; });
// Load workerScripts/TimeOfTheDay.js in the workers framework // We define an API accessible from the module workers.open("workerScripts/TimeOfTheDay", { client: { getCurrentTime: function() { return Date.now(); } } }) .then((connection) => { return connection.invoke("timeOfTheDay"); }) .then((result) => { console.log(result); }); //********************************************************* // module: workerScripts/TimeOfTheDay.js //********************************************************* define([], () => { return { timeOfTheDay: function(noArgs, remoteClient) { // call back the main thread to get the current time over there. return remoteClient.invoke("getCurrentTime") .then((time) => { return "The time is " + time; }); } }; });
基本信息
以下是所在类或对象的基本信息。
AMD:
require(["esri/core/workers"], (workers) => { /* code goes here */ });
ESM:
import * as workers from "@arcgis/core/core/workers";
对象:
esri/core/workers
自从:用于 JavaScript 4.2 的 ArcGIS API
用法说明
workers.open
函数(或属性)的定义如下:
相关用法
- JavaScript ArcGIS wfsUtils.getCapabilities用法及代码示例
- JavaScript window.open()用法及代码示例
- JavaScript ArcGIS watchUtils.whenEqualOnce用法及代码示例
- JavaScript ArcGIS wfsUtils.getWFSLayerInfo用法及代码示例
- JavaScript ArcGIS watchUtils.PausableWatchHandle用法及代码示例
- JavaScript window.close()用法及代码示例
- JavaScript ArcGIS watchUtils.whenEqual用法及代码示例
- JavaScript ArcGIS watchUtils.PromisedWatchHandle用法及代码示例
- JavaScript ArcGIS SceneView double-click事件用法及代码示例
- JavaScript ArcGIS geometryEngineAsync.overlaps用法及代码示例
- JavaScript ArcGIS Expand.when用法及代码示例
- JavaScript ArcGIS Sublayer.JoinTableDataSource用法及代码示例
- JavaScript ArcGIS FillSymbol3DLayer.outline用法及代码示例
- JavaScript ArcGIS Ground.loadAll用法及代码示例
- JavaScript Object valueOf()用法及代码示例
- JavaScript ArcGIS LabelClass.repeatLabelDistance用法及代码示例
- JavaScript ArcGIS KMLLayerView.when用法及代码示例
- JavaScript ArcGIS Daylight.visibleElements用法及代码示例
- JavaScript Uint8Array.of()用法及代码示例
- JavaScript ArcGIS CIMSymbol.CIMTextSymbol用法及代码示例
- JavaScript new Legend用法及代码示例
- JavaScript Slider.effectiveMin用法及代码示例
- JavaScript Sketch.classes用法及代码示例
- JavaScript Sketch.visible用法及代码示例
- JavaScript ArcGIS AreaMeasurement3D.analysis用法及代码示例
注:本文由纯净天空筛选整理自arcgis.com大神的英文原创作品 workers.open。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。