1e41f4b71Sopenharmony_ci# Changelog
2e41f4b71Sopenharmony_ci##### Key API/Component Changes
3e41f4b71Sopenharmony_ci## IPC Subsystem
4e41f4b71Sopenharmony_ci#### cl.rpc.1 sendRequest Return Value Type Change
5e41f4b71Sopenharmony_ci
6e41f4b71Sopenharmony_ci##### Change Impact
7e41f4b71Sopenharmony_ci
8e41f4b71Sopenharmony_ciThe **sendRequest** method in the JS modules **RemoteProxy** and **RemoteObject** is changed to an asynchronous interface. The new version uses a **Promise** object to return a **SendRequestResult** instance. Existing applications need to be adapted.
9e41f4b71Sopenharmony_ci
10e41f4b71Sopenharmony_ci##### Key API/Component Changes
11e41f4b71Sopenharmony_ci
12e41f4b71Sopenharmony_ci```
13e41f4b71Sopenharmony_ciModule: ohos.rpc.IRemoteObject, ohos.rpc.RemoteProxy and ohos.rpc.RemoteObject
14e41f4b71Sopenharmony_ciOld method: sendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption): boolean
15e41f4b71Sopenharmony_ci
16e41f4b71Sopenharmony_ciNew method:
17e41f4b71Sopenharmony_cisendRequest(code: number, data: MessageParcel, reply: MessageParcel, options: MessageOption): Promise<SendRequestResult>
18e41f4b71Sopenharmony_ci```
19e41f4b71Sopenharmony_ci
20e41f4b71Sopenharmony_ci**Adaptation Guidelines**
21e41f4b71Sopenharmony_ci
22e41f4b71Sopenharmony_ci```
23e41f4b71Sopenharmony_ciimport rpc from "@ohos.rpc"
24e41f4b71Sopenharmony_ciimport FA from "@ohos.ability.featureAbility";
25e41f4b71Sopenharmony_ci
26e41f4b71Sopenharmony_cilet proxy;
27e41f4b71Sopenharmony_cilet connect = {
28e41f4b71Sopenharmony_ci    onConnect: function(elementName, remoteProxy) {
29e41f4b71Sopenharmony_ci        console.log("RpcClient: js onConnect called.");
30e41f4b71Sopenharmony_ci        proxy = remoteProxy;
31e41f4b71Sopenharmony_ci    },
32e41f4b71Sopenharmony_ci    onDisconnect: function(elementName) {
33e41f4b71Sopenharmony_ci        console.log("RpcClient: onDisconnect");
34e41f4b71Sopenharmony_ci    },
35e41f4b71Sopenharmony_ci    onFailed: function() {
36e41f4b71Sopenharmony_ci        console.log("RpcClient: onFailed");
37e41f4b71Sopenharmony_ci    }
38e41f4b71Sopenharmony_ci};
39e41f4b71Sopenharmony_cilet want = {
40e41f4b71Sopenharmony_ci    "bundleName": "com.ohos.server",
41e41f4b71Sopenharmony_ci    "abilityName": "com.ohos.server.MainAbility",
42e41f4b71Sopenharmony_ci};
43e41f4b71Sopenharmony_ciFA.connectAbility(want, connect);
44e41f4b71Sopenharmony_ci
45e41f4b71Sopenharmony_cilet option = new rpc.MessageOption()
46e41f4b71Sopenharmony_cilet data = rpc.MessageParcel.create()
47e41f4b71Sopenharmony_cilet reply = rpc.MessageParcel.create()
48e41f4b71Sopenharmony_ciproxy.sendRequest(1, data, reply, option)
49e41f4b71Sopenharmony_ci	.then(function(result) {  
50e41f4b71Sopenharmony_ci		console.info("send request done")
51e41f4b71Sopenharmony_ci		if (result.errCode === 0) {
52e41f4b71Sopenharmony_ci			// read result from result.reply
53e41f4b71Sopenharmony_ci		}
54e41f4b71Sopenharmony_ci	})
55e41f4b71Sopenharmony_ci	.catch(function(e) {
56e41f4b71Sopenharmony_ci		console.error("send request failed: " + e)
57e41f4b71Sopenharmony_ci	})
58e41f4b71Sopenharmony_ci	.finally(() => {
59e41f4b71Sopenharmony_ci		data.reclaim()
60e41f4b71Sopenharmony_ci		reply.reclaim()
61e41f4b71Sopenharmony_ci	})
62e41f4b71Sopenharmony_ci```
63