@AuraEnabled Annotations for Continuations

Continuations use the @AuraEnabled annotation for Apex code. Here are the rules for usage.

  • @AuraEnabled(continuation=true)

    An Apex controller method that returns a continuation must be annotated with @AuraEnabled(continuation=true).

  • @AuraEnabled(continuation=true cacheable=true)

    To cache the result of a continuation action, set cacheable=true on the annotation for the Apex callback method.

    There’s a space, not a comma, between continuation=true cacheable=true.

    Note

Caching Considerations 

It’s best practice to set cacheable=true on all methods involved in the continuation chain, including the method that returns a Continuation object.

In this example, the Apex method that returns the continuation, startRequest(), and the callback, processResponse(), both contain cacheable=true in their @AuraEnabled annotation.

1// Action method
2@AuraEnabled(continuation=true cacheable=true)
3public static Object startRequest() { }
4
5// Callback method
6@AuraEnabled(cacheable=true)
7public static Object processResponse(List<String> labels,
8  Object state) { }

Cacheable Setting Behavior 

Here’s a table that summarizes the behavior with different settings of the cacheable attribute in @AuraEnabled.

Method Returning Continuation Object Annotated with cacheable=trueCallback Method Annotated with cacheable=trueValid?Can be Called Using @wire?Is Action Response Cached on Client?
YesYesYesYesYes
YesNoNo (throws an exception)N/AN/A
NoYesYesNo (all methods must have cacheable=true)No
NoNoYesNoNo

See Also

Release Preview

This release is in preview. Features described here don't become generally available until the latest general availability date that Salesforce announces for this release. Before then, and where features are noted as beta, pilot, or developer preview, we can't guarantee general availability within any particular time frame or at all. Make your purchase decisions only on the basis of generally available products and features.