Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
9bf1bc7a
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看板
提交
9bf1bc7a
编写于
9月 06, 2022
作者:
C
chenyuyan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Signed-off-by: chenyuyan <chenyuyan3@huawei.com>
Change-Id: I14065eb659ff24771e549327a243801eab8979d7
上级
a7ed6c76
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
119 addition
and
6 deletion
+119
-6
zh-cn/application-dev/reference/apis/js-apis-rpc.md
zh-cn/application-dev/reference/apis/js-apis-rpc.md
+119
-6
未找到文件。
zh-cn/application-dev/reference/apis/js-apis-rpc.md
浏览文件 @
9bf1bc7a
...
...
@@ -3834,9 +3834,7 @@ sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: Me
### onRemoteRequest<sup>8+(deprecated)</sup>
> **说明:**
> 从 API Version 9 开始废弃,建议使用[onRemoteRequestEx<sup>9+</sup>](##onremoterequestex)替代。
> <p>开发者同时调用onRemoteRequest和onRemoteRequestEx方法时,仅执行onRemoteRequestEx。</p>
> <p>开发者同时同步调用onRemoteRequest和异步调用onRemoteRequestEx时,仅执行异步调用的onRemoteRequestEx。</p>
><p>依旧支持仅同步调用onRemoteRequest的操作。</p>
onRemoteRequest(code : number, data : MessageParcel, reply: MessageParcel, options : MessageOption): boolean
...
...
@@ -3892,6 +3890,11 @@ sendRequestAsync请求的响应处理函数,服务端在该函数里处理请
}
```
### onRemoteRequestEx<sup>9+</sup>
> **说明:**
> <p>开发者同时调用onRemoteRequest和onRemoteRequestEx方法时,仅执行onRemoteRequestEx。</p>
> <p>开发者同时同步调用onRemoteRequest和异步调用onRemoteRequestEx时,仅执行异步调用的onRemoteRequestEx。</p>
><p>依旧支持仅同步调用onRemoteRequest的操作。</p>
onRemoteRequestEx(code : number, data : MessageParcel, reply: MessageParcel, options : MessageOption): boolean | Promise
<boolean>
...
...
@@ -3914,7 +3917,7 @@ sendRequestAsync请求的响应处理函数,服务端在该函数里同步或
| Promise
<boolean>
| 若在onRemoteRequestEx中异步地处理请求,则返回一个Promise对象|
**示例:**
**
同步调用
示例:**
```
class MyDeathRecipient {
...
...
@@ -3935,7 +3938,6 @@ sendRequestAsync请求的响应处理函数,服务端在该函数里同步或
isObjectDead(): boolean {
return false;
}
// 回调函数为同步
onRemoteRequestEx(code, data, reply, option) {
if (code === 1) {
console.log("RpcServer: sync onRemoteRequestEx is called");
...
...
@@ -3945,7 +3947,29 @@ sendRequestAsync请求的响应处理函数,服务端在该函数里同步或
return false;
}
}
// 回调函数为异步
}
```
**异步调用示例:**
```
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");
...
...
@@ -3960,7 +3984,96 @@ sendRequestAsync请求的响应处理函数,服务端在该函数里同步或
}
}
```
**同时调用onRemoteRequest和onRemoteRequestEx进行同步调用示例:**
```
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
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;
}
}
```
**同时调用同步的onRemoteRequest和异步的onRemoteRequestEx示例:**
```
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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录