Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
34ae8143
D
Docs
项目概览
OpenHarmony
/
Docs
1 年多 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
34ae8143
编写于
9月 24, 2022
作者:
O
openharmony_ci
提交者:
Gitee
9月 24, 2022
浏览文件
操作
浏览文件
下载
差异文件
!9890 add worker content
Merge pull request !9890 from wangzhaoyong/master
上级
b48c0c19
c611a70f
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
45 addition
and
30 deletion
+45
-30
zh-cn/application-dev/reference/apis/js-apis-worker.md
zh-cn/application-dev/reference/apis/js-apis-worker.md
+45
-30
未找到文件。
zh-cn/application-dev/reference/apis/js-apis-worker.md
浏览文件 @
34ae8143
...
...
@@ -30,7 +30,6 @@ Worker构造函数的选项信息,用于为Worker添加其他信息。
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| ------ | --------- | ---- | ---- | ---------------------- |
| name | string | 是 | 是 | Worker的名称。 |
| shared | boolean | 是 | 是 | Worker是否可以被分享。 |
## Worker
...
...
@@ -50,7 +49,7 @@ Worker构造函数。
| 参数名 | 类型 | 必填 | 说明 |
| --------- | ------------------------------- | ---- | ------------------------------------------------------------ |
| scriptURL | string | 是 | Worker执行脚本的
url。
<br/>
在FA和Stage模型下,DevEco Studio新建Worker工程路径分别存在以下两种情况:
<br/>
(a) workers目录与pages目录同级。
<br/>
(b) workers
目录与pages目录不同级。
| scriptURL | string | 是 | Worker执行脚本的
路径。
<br/>
在FA和Stage模型下,DevEco Studio新建Worker工程路径分别存在以下两种情况:
<br/>
(a) worker脚本所在目录与pages目录同级。
<br/>
(b) worker脚本所在
目录与pages目录不同级。
| options |
[
WorkerOptions
](
#workeroptions
)
| 否 | Worker构造的选项。 |
**返回值:**
...
...
@@ -66,22 +65,23 @@ import worker from '@ohos.worker';
// worker线程创建
// FA模型-目录同级
const
workerFAModel01
=
new
worker
.
Worker
(
"
workers/worker.js
"
,
{
name
:
"
first worker
"
});
const
workerFAModel01
=
new
worker
.
Worker
(
"
workers/worker.js
"
,
{
name
:
"
first worker
in FA model
"
});
// FA模型-目录不同级(以workers目录放置pages目录前一级为例)
const
workerFAModel02
=
new
worker
.
Worker
(
"
../workers/worker.js
"
,
{
name
:
"
first worker
"
}
);
const
workerFAModel02
=
new
worker
.
Worker
(
"
../workers/worker.js
"
);
// Stage模型-目录同级
const
workerStageModel01
=
new
worker
.
Worker
(
'
entry/ets/workers/worker.ts
'
);
const
workerStageModel01
=
new
worker
.
Worker
(
'
entry/ets/workers/worker.ts
'
,
{
name
:
"
first worker in Stage model
"
}
);
// Stage模型-目录不同级(以workers目录放置pages目录后一级为例)
const
workerStageModel02
=
new
worker
.
Worker
(
'
entry/ets/pages/workers/worker.ts
'
);
//
scriptURL——"entry/ets/workers/worker.ts"的解释
:
// entry: 为module.json5
中module中name属性
的值;
//
理解Stage模型scriptURL的"entry/ets/workers/worker.ts"
:
// entry: 为module.json5
文件中module的name属性对应
的值;
// ets: 表明当前使用的语言。
```
同时,需在工程
目录下
build-profile.json5文件的buildOption属性中添加配置信息,主要分为下面两种情况:
同时,需在工程
的模块级
build-profile.json5文件的buildOption属性中添加配置信息,主要分为下面两种情况:
(1) 目录同级(
**不添加也可以**
)
FA模型:
```
json
...
...
@@ -104,6 +104,7 @@ Stage模型:
}
```
(2) 目录不同级(
**必须添加**
)
FA模型:
```
json
"buildOption"
:
{
...
...
@@ -128,7 +129,7 @@ Stage模型:
postMessage(message: Object, options?: PostMessageOptions): void
向Worker线程发送
消息,数据的传输采用结构化克隆算法
。
向Worker线程发送
数据,数据类型必须是序列化所支持的类型。序列化支持类型见其他说明
。
**系统能力:**
SystemCapability.Utils.Lang
...
...
@@ -163,8 +164,8 @@ on(type: string, listener: EventListener): void
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------- | ---- | ---------------- |
| type | string | 是 | 监听
事件的type
。 |
| listener |
[
EventListener
](
#eventlistener
)
| 是 | 回调
的事件。
|
| type | string | 是 | 监听
的事件类型
。 |
| listener |
[
EventListener
](
#eventlistener
)
| 是 | 回调
事件。
|
**示例:**
...
...
@@ -188,8 +189,8 @@ once(type: string, listener: EventListener): void
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------- | ---- | ---------------- |
| type | string | 是 | 监听
事件的type
。 |
| listener |
[
EventListener
](
#eventlistener
)
| 是 | 回调
的事件。
|
| type | string | 是 | 监听
的事件类型
。 |
| listener |
[
EventListener
](
#eventlistener
)
| 是 | 回调
事件。
|
**示例:**
...
...
@@ -205,7 +206,7 @@ workerInstance.once("alert", (e)=>{
off(type: string, listener?: EventListener): void
删除
Worker
的事件监听。
删除
类型为type
的事件监听。
**系统能力:**
SystemCapability.Utils.Lang
...
...
@@ -213,8 +214,8 @@ off(type: string, listener?: EventListener): void
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------- | ---- | ---------------------- |
| type | string | 是 | 需要删除
事件的type
。 |
| listener |
[
EventListener
](
#eventlistener
)
| 否 |
需要删除的回调的事件。
|
| type | string | 是 | 需要删除
的事件类型
。 |
| listener |
[
EventListener
](
#eventlistener
)
| 否 |
删除的回调事件。
|
**示例:**
...
...
@@ -228,7 +229,7 @@ workerInstance.off("alert");
terminate(): void
关闭
Worker线程,终止Worker接收消息。
销毁
Worker线程,终止Worker接收消息。
**系统能力:**
SystemCapability.Utils.Lang
...
...
@@ -244,7 +245,7 @@ workerInstance.terminate();
onexit?: (code: number) =
>
void
Worker对象的onexit属性表示Worker
退出
时被调用的事件处理程序,处理程序在宿主线程中执行。
Worker对象的onexit属性表示Worker
销毁
时被调用的事件处理程序,处理程序在宿主线程中执行。
**系统能力:**
SystemCapability.Utils.Lang
...
...
@@ -353,7 +354,7 @@ addEventListener(type: string, listener: EventListener): void
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------- | ---- | ---------------- |
| type | string | 是 | 监听
事件的type
。 |
| type | string | 是 | 监听
的事件类型
。 |
| listener |
[
EventListener
](
#eventlistener
)
| 是 | 回调的事件。 |
**示例:**
...
...
@@ -378,8 +379,8 @@ removeEventListener(type: string, callback?: EventListener): void
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------------------------------- | ---- | ---------------------- |
| type | string | 是 | 需要删除
事件的type。
|
| callback |
[
EventListener
](
#eventlistener
)
| 否 |
需要删除的回调的事件。
|
| type | string | 是 | 需要删除
的监听事件类型。
|
| callback |
[
EventListener
](
#eventlistener
)
| 否 |
删除的回调事件。
|
**示例:**
...
...
@@ -421,7 +422,7 @@ workerInstance.dispatchEvent({type:"alert"});
removeAllListener(): void
删除Worker
的所有
事件监听。
删除Worker
所有的
事件监听。
**系统能力:**
SystemCapability.Utils.Lang
...
...
@@ -435,14 +436,14 @@ workerInstance.removeAllListener();
## DedicatedWorkerGlobalScope
Worker线程用于与宿主线程通信的类,通过postMessage接口发送消息给宿主线程、close接口
关闭Worker线程,
DedicatedWorkerGlobalScope类继承
[
WorkerGlobalScope
](
#workerglobalscope
)
。
Worker线程用于与宿主线程通信的类,通过postMessage接口发送消息给宿主线程、close接口
销毁Worker线程。
DedicatedWorkerGlobalScope类继承
[
WorkerGlobalScope
](
#workerglobalscope
)
。
### postMessage
postMessage(messageObject: Object, options?: PostMessageOptions): void
Worker向宿主线程发送消息。
Worker
线程
向宿主线程发送消息。
**系统能力:**
SystemCapability.Utils.Lang
...
...
@@ -450,7 +451,7 @@ Worker向宿主线程发送消息。
| 参数名 | 类型 | 必填 | 说明 |
| ------- | ----------------------------------------- | ---- | ------------------------------------------------------------ |
| message | Object | 是 | 发送至
Worker
的数据。 |
| message | Object | 是 | 发送至
宿主线程
的数据。 |
| options |
[
PostMessageOptions
](
#postmessageoptions
)
| 否 | 可转移对象是ArrayBuffer的实例对象。transferList数组中不可传入null。 |
**示例:**
...
...
@@ -480,7 +481,7 @@ parentPort.onmessage = function(e){
close(): void
关闭
Worker线程,终止Worker接收消息。
销毁
Worker线程,终止Worker接收消息。
**系统能力:**
SystemCapability.Utils.Lang
...
...
@@ -505,7 +506,7 @@ parentPort.onmessage = function(e) {
onmessage?: (event: MessageEvent
\<
T>) =
>
void
DedicatedWorkerGlobalScope的onmessage属性表示Worker线程收到来自其宿主线程通过
worker.
postMessage接口发送的消息时被调用的事件处理程序,处理程序在Worker线程中执行。
DedicatedWorkerGlobalScope的onmessage属性表示Worker线程收到来自其宿主线程通过postMessage接口发送的消息时被调用的事件处理程序,处理程序在Worker线程中执行。
**系统能力:**
SystemCapability.Utils.Lang
...
...
@@ -513,7 +514,7 @@ DedicatedWorkerGlobalScope的onmessage属性表示Worker线程收到来自其宿
| 参数名 | 类型 | 必填 | 说明 |
| ------ | ----------------------------- | ---- | ---------------------- |
| event |
[
MessageEvent
](
#messageevent
)
| 否 | 收到
的Worker消息
数据。 |
| event |
[
MessageEvent
](
#messageevent
)
| 否 | 收到
宿主线程发送的
数据。 |
**示例:**
...
...
@@ -583,7 +584,7 @@ parentPort.onmessageerror= function(e) {
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| --------- | -------- | ---- | ---- | ---------------------------------- |
| type | string | 是 | 否 | 指定事件的
type
。 |
| type | string | 是 | 否 | 指定事件的
类型
。 |
| timeStamp | number | 是 | 否 | 事件创建时的时间戳(精度为毫秒)。 |
...
...
@@ -653,7 +654,7 @@ Worker线程自身的运行环境,WorkerGlobalScope类继承[EventTarget](#eve
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| ---- | ------------------------------------------------------------ | ---- | ---- | --------------------------------------- |
| name | string | 是 | 否 | Worker的名字,
有
new
Worker时指定。 |
| name | string | 是 | 否 | Worker的名字,new
Worker时指定。 |
| self |
[
WorkerGlobalScope
](
#workerglobalscope
)
&
typeof
globalThis | 是 | 否 | WorkerGlobalScope本身。 |
...
...
@@ -689,6 +690,20 @@ parentPort.onerror = function(e){
## 其他说明
### 序列化支持类型
| Type | 备注 | 是否支持 |
| ------------------- | -------------------------------------------------------- | -------------------- |
| All Primitive Type | 不包括symbol | 是 |
| Date | | 是 |
| String | | 是 |
| RegExp | | 是 |
| Array | | 是 |
| Map | | 是 |
| Set | | 是 |
| Object | 只支持Create from literal的简单Object,不支持带function的 | 是 |
| ArrayBuffer | 提供transfer能力 | 是 |
| TypedArray | | 是 |
### 内存模型
Worker基于Actor并发模型实现。在Worker的交互流程中,JS主线程可以创建多个Worker子线程,各个Worker线程间相互隔离,并通过序列化传递对象,等到Worker线程完成计算任务,再把结果返回给主线程。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录