Salesforce 認定 Platform デベロッパー 上級 無料問題 5 / 10 ・ 分野3: ユーザインターフェース
Aura コンポーネントのクリックの処理の中で、3つの Apex のアクションを順に $A.enqueueAction で積んだ。サーバへの要求の送られ方について、開発者ガイドの説明に合うものはどれか。
- イベントのループの終わりに、積んだアクションが1つ以上の要求にまとめて送られる
- enqueueAction を呼んだその場で、アクションごとに1つずつ要求が送られる
- 積んだアクションは、利用者がページを読み込み直したときに送られる
- 3つ目を積んだ時点で先の2つは取り消され、最後に積んだものが送られる
正解と解説を見る
正解: A
正解の理由
$A.enqueueAction(action) は、サーバ側のコントローラのアクションを、実行するアクションのキューに足す。キューに積んだアクションは、イベントのループの終わりに動く。フレームワークは、アクションごとに別の要求を送るのではなく、イベントの連鎖を処理し、キューのアクションを1つ以上の要求にまとめて送る。
違う選択肢
「enqueueAction を呼んだその場で、アクションごとに1つずつ要求が送られる」… 積んだアクションはイベントのループの終わりに動く。フレームワークは、アクションごとに別の要求を送るのではなく、キューのアクションを1つ以上の要求にまとめる。
「3つ目を積んだ時点で先の2つは取り消され、最後に積んだものが送られる」… 積んだアクションは取り消されず、キューにあるものがまとめて送られる。
「積んだアクションは、利用者がページを読み込み直したときに送られる」… 送られるのはイベントのループの終わりで、ページの読み込み直しを待つものではない。
押さえどころ
アクションを作って setParams と setCallback を書いても、enqueueAction で積まなければサーバへは送られない。結果はコールバックで非同期に受け取るので、積んだ直後の行で戻り値を読むことはできない。