Note: 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.

@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. The cacheable=true setting is available for API version 44.0 and higher. Before API version 44.0, to cache data returned from an Apex method, you had to call setStorable() in JavaScript code on every action that called the Apex method.

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) { }

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

Method Returning Continuation Object Annotated with cacheable=true Callback Method Annotated with cacheable=true Valid? Action can use setStorable() in JavaScript? Is Action Response Cached on Client?
Yes Yes Yes Yes Yes
Yes No No (throws an exception) N/A N/A
No Yes Yes No (all methods must have cacheable=true) Yes
No No Yes
  • No (API version 44.0 and higher)
  • Yes (43.0 and lower)
  • No (API version 44.0 and higher)
  • Yes (43.0 and lower)