Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
e52505dc
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看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
e52505dc
编写于
9月 06, 2022
作者:
O
openharmony_ci
提交者:
Gitee
9月 06, 2022
浏览文件
操作
浏览文件
下载
差异文件
!9114 rpc 新增onRemoteReuqstEx接口说明文档
Merge pull request !9114 from chenyuyan/apidocs
上级
36529ae3
e74bf60c
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
188 addition
and
2 deletion
+188
-2
zh-cn/application-dev/reference/apis/js-apis-rpc.md
zh-cn/application-dev/reference/apis/js-apis-rpc.md
+188
-2
未找到文件。
zh-cn/application-dev/reference/apis/js-apis-rpc.md
浏览文件 @
e52505dc
...
...
@@ -3998,9 +3998,12 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
```
### onRemoteRequest
### onRemoteRequest<sup>8+(deprecated)</sup>
onRemoteRequest(code : number, data : MessageParcel, reply: MessageParcel, options : MessageOption): boolean
> **说明:**
> 从 API Version 9 开始废弃,建议使用[onRemoteRequestEx<sup>9+</sup>](#onremoterequestex)替代。
sendRequestAsync请求的响应处理函数,服务端在该函数里处理请求,回复结果。
...
...
@@ -4024,7 +4027,7 @@ sendRequestAsync请求的响应处理函数,服务端在该函数里处理请
**示例:**
```
```
ets
class MyDeathRecipient {
onRemoteDied() {
console.log("server died");
...
...
@@ -4055,8 +4058,191 @@ sendRequestAsync请求的响应处理函数,服务端在该函数里处理请
}
}
```
### onRemoteRequestEx<sup>9+</sup>
onRemoteRequestEx(code : number, data : MessageParcel, reply: MessageParcel, options : MessageOption): boolean | Promise
<boolean>
> **说明:**
>- 开发者应优先选择重载onRemoteRequestEx方法,其中可以自由实现同步和异步的消息处理。
>- 开发者同时重载onRemoteRequest和onRemoteRequestEx方法时,仅onRemoteRequestEx方法生效。
sendRequestAsync请求的响应处理函数,服务端在该函数里同步或异步地处理请求,回复结果。
**系统能力**
:SystemCapability.Communication.IPC.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| code | number | 是 | 对端发送的服务请求码。 |
| data |
[
MessageParcel
](
#messageparcel
)
| 是 | 携带客户端调用参数的MessageParcel对象。 |
| reply |
[
MessageParcel
](
#messageparcel
)
| 是 | 写入结果的MessageParcel对象。 |
| option |
[
MessageOption
](
#messageoption
)
| 是 | 指示操作是同步还是异步。 |
**返回值:**
| 类型 | 说明 |
| -------- | -------- |
| boolean | 若在onRemoteRequestEx中同步地处理请求,则返回一个布尔值:操作成功,则返回true;否则返回false。 |
| Promise
<boolean>
| 若在onRemoteRequestEx中异步地处理请求,则返回一个Promise对象。 |
**重载onRemoteRequestEx方法同步处理请求示例:**
```
ets
class MyDeathRecipient {
onRemoteDied() {
console.log("server died");
}
}
class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) {
super(descriptor);
}
addDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean {
return true;
}
removeDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean {
return true;
}
isObjectDead(): boolean {
return false;
}
onRemoteRequestEx(code, data, reply, option) {
if (code === 1) {
console.log("RpcServer: sync onRemoteRequestEx is called");
return true;
} else {
console.log("RpcServer: unknown code: " + code);
return false;
}
}
}
```
**重载onRemoteRequestEx方法异步处理请求示例:**
```
ets
class MyDeathRecipient {
onRemoteDied() {
console.log("server died");
}
}
class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) {
super(descriptor);
}
addDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean {
return true;
}
removeDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean {
return true;
}
isObjectDead(): boolean {
return false;
}
async onRemoteRequestEx(code, data, reply, option) {
if (code === 1) {
console.log("RpcServer: async onRemoteRequestEx is called");
} else {
console.log("RpcServer: unknown code: " + code);
return false;
}
await new Promise((resolve) => {
setTimeout(resolve, 100);
})
return true;
}
}
```
**同时重载onRemoteRequestEx和onRemoteRequest方法同步处理请求示例:**
```
ets
class MyDeathRecipient {
onRemoteDied() {
console.log("server died");
}
}
class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) {
super(descriptor);
}
addDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean {
return true;
}
removeDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean {
return true;
}
isObjectDead(): boolean {
return false;
}
onRemoteRequest(code, data, reply, option) {
if (code === 1) {
console.log("RpcServer: sync onRemoteRequestEx is called");
return true;
} else {
console.log("RpcServer: unknown code: " + code);
return false;
}
}
// 同时调用仅会执行onRemoteRequestEx
onRemoteRequestEx(code, data, reply, option) {
if (code === 1) {
console.log("RpcServer: async onRemoteRequestEx is called");
} else {
console.log("RpcServer: unknown code: " + code);
return false;
}
return true;
}
}
```
**同时重载onRemoteRequestEx和onRemoteRequest方法异步处理请求示例:**
```
ets
int index = 0;
class MyDeathRecipient {
onRemoteDied() {
console.log("server died");
}
}
class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) {
super(descriptor);
}
addDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean {
return true;
}
removeDeathRecipient(recipient: MyDeathRecipient, flags: number): boolean {
return true;
}
isObjectDead(): boolean {
return false;
}
onRemoteRequest(code, data, reply, option) {
if (code === 1) {
console.log("RpcServer: sync onRemoteRequestEx is called");
return true;
} else {
console.log("RpcServer: unknown code: " + code);
return false;
}
}
// 同时调用仅会执行onRemoteRequestEx
async onRemoteRequestEx(code, data, reply, option) {
if (code === 1) {
console.log("RpcServer: async onRemoteRequestEx is called");
} else {
console.log("RpcServer: unknown code: " + code);
return false;
}
await new Promise((resolve) => {
setTimeout(resolve, 100);
})
return true;
}
}
```
### getCallingUid
getCallingUid(): number
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录