継続の @AuraEnabled アノテーション
継続では Apex コードで @AuraEnabled アノテーションを使用します。使い方のルールは次の通りです。
- @AuraEnabled(continuation=true)
- 継続を返す Apex コントローラメソッドには、@AuraEnabled(continuation=true) アノテーションを付加する必要があります。
- @AuraEnabled(continuation=true cacheable=true)
- 継続アクションの結果をキャッシュするには、Apex コールバックメソッドのアノテーションで cacheable=true と設定します。
キャッシュの考慮事項
Continuation オブジェクトを返すメソッドを含めて、継続チェーンに関与するすべてのメソッドで cacheable=true と設定するのがベストプラクティスです。cacheable=true の設定は、API バージョン 44.0 以降で使用できます。API バージョン 44.0 より前では、Apex メソッドから返されるデータをキャッシュするには、Apex メソッドをコールするアクションごとに JavaScript コードで setStorable() をコールする必要がありました。
この例では、継続を返す Apex メソッド (startRequest()) とコールバック (processResponse()) の両方の @AuraEnabled アノテーションで cacheable=true が設定されています。
@AuraEnabled での cacheable 属性の各設定の動作を下表にまとめます。
| cacheable=true のアノテーションが付いた、継続オブジェクトを返すメソッド | cacheable=true のアノテーションが付いたコールバックメソッド | 有効かどうか | アクションが JavaScript で setStorable() を使用できるかどうか | アクションからの応答がクライアントでキャッシュされるかどうか |
|---|---|---|---|---|
| はい | はい | はい | はい | はい |
| はい | いいえ | いいえ (例外をスロー) | なし | なし |
| いいえ | はい | はい | いいえ (すべてのメソッドで cacheable=true にする必要あり) | はい |
| いいえ | いいえ | はい |
|
|