この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

非同期コードの結果を返す

aura:method は同期して実行されます。同期 JavaScript コードから値を返すには、return ステートメントを使用します。サーバ側のアクションをコールする JavaScript コードは非同期です。非同期コードは返した後も実行を続けることができます。aura:method は非同期コードが終了する前に返すため、return ステートメントを使用して、非同期コールの結果を返すことはできません。非同期コードの場合は、return ステートメントではなくコールバックを使用します。

ステップ 1: マークアップで aura:method を定義する

コールバックを使用する echo aura:method を見てみましょう。c:auraMethodCallerWrapper.app および「コンポーネントメソッドのコール」に示されたコンポーネントを使用します。c:auraMethod コンポーネントの echo aura:method は次のようになります。

echo aura:method には、名前が callback の aura:attribute があります。この属性を使用して、SimpleServerSideController でサーバ側のアクションを実行した後に、aura:method によって呼び出されるコールバックを設定できます。

ステップ 2: コントローラで aura:method ロジックを実装する

echo aura:method で、auraMethodController.jsecho() を呼び出します。ソースを見てみましょう。

echo() でサーバ側コントローラアクション serverEcho() をコールし���す。これは次に作成します。

return ステートメントで結果を返すことはできません。aura:method は、非同期のサーバ側アクションコールが終了する前に返します。代わりに、aura:method に渡されたコールバックを呼び出して、コールバックのパラメータとして結果を設定します。

メモ

ステップ 3: Apex サーバ側コントローラを作成する

echo aura:method で、serverEcho というサーバ側コントローラアクションをコールします。サーバ側コントローラのソースは次のようになります。

serverEcho() メソッドは String を返します。

ステップ 4: 親コントローラから aura:method をコールする

c:auraMethodCaller のコントローラは次のようになります。その子コンポーネント c:auraMethod で、echo aura:method をコールします。

callAuraMethodServerTrip() は子コンポーネント c:auraMethod を検索し、その echo aura:method をコールします。echo() で、コールバック関数を aura:method に渡します。

auraMethodCallerController.js で設定されたコールバックで結果を記録します。

ステップ 5: aura:method へのコールを開始するボタンを追加する

c:auraMethodCaller マークアップには、auraMethodCallerController.jscallAuraMethodServerTrip() を呼び出す lightning:button が含まれます。このボタンを使用して、子コンポーネントの aura:method へのコールを開始します。

c:auraMethodCaller のマークアップは次のようになります。