リモートオブジェクトコールバック関数
リモートオブジェクトは、すべての要求を Salesforce サービスに非同期で送信します。コードは、指定したコールバック関数のリモートオブジェクト操作に対する応答を処理します。コールバック関数は、操作の結果および返されるエラーでページの更新を処理します。
コールバック関数は、イベントおよび非同期操作���処理する JavaScript の標準的な手法です。リモートオブジェクトは、このパターンを使用して、その非同期操作の応答を処理します。リモートオブジェクト操作を呼び出す場合、操作のパラメータや、必要に応じてコールバック関数を指定します。JavaScript コードは、操作を呼び出した後も中断されずに継続します。リモート操作が完了して結果が返されると、コールバック関数が呼び出されて、操作の結果を受信します。
リモートオブジェクトコールバック関数を作成して、最大 3 つの引数を受信できます。
大部分のコールバック関数は、エラーをチェックし、その結果を使用してアクションを実行します。通常、event オブジェクトは、デバッグおよび高度なエラー管理でのみ使用されます。
1function callback(Error error, Array results, Object event) { // ... }| 名前 | 型 | 説明 |
|---|---|---|
| error | JavaScript error オブジェクト | 標準 JavaScript error オブジェクト。操作に成功すると、error が null になります。エラーの理由を取得するには、error.message を使用します。 |
| results | JavaScript 配列 | 操作の結果を含む配列。操作が retrieve() だった場合、結果は適切なリモートオブジェクトのインスタンスになります。それ以外の場合は、影響を受けたレコードの Id を表す文字列が配列に含まれます。 |
| event | JavaScript オブジェクト | リモートオブジェクト操作を伝送する JavaScript Remoting イベントの詳細を提供する JavaScript オブジェクト。 |
例
retrieve() 操作の結果を処理する簡単なコールバック関数を次に示します。
この例では、getAllContacts() は retrieve() をコールして、匿名関数をコールバックとして渡します。コールバック関数はエラーをチェックします。次に、jQuery を使用して結果レコードの配列を反復処理し、ページに追加します。コールバック構造を重点的に確認するために、一部の詳細は省略されています。ページの完全なソースコードについては、「リモートオブジェクトと jQuery Mobile の併用例」を参照してください。
1function getAllContacts() {
2 $j.mobile.showPageLoadingMsg();
3
4 var c = new RemoteObjectModel.Contact();
5 c.retrieve({ limit: 100 }, function (err, records) {
6 // Handle errors
7 if (err) {
8 displayError(err);
9 } else {
10 // Add the results to the page
11 var list = $j(Config.Selectors.list).empty();
12 $j.each(records, function() {
13 var newLink = $j('<a>'+this.get('FirstName')+' '+this.get('LastName')+'</a>');
14 newLink.appendTo(list).wrap('<li></li>');
15 });
16
17 $j.mobile.hidePageLoadingMsg();
18 list.listview('refresh');
19 }
20 });
21}