Newer Version Available

This content describes an older version of this product. View Latest

Modifying Components Outside the Framework Lifecycle

Use $A.run() to wrap any code that modifies a component outside the normal rerendering lifecycle. The $A.run() call ensures that the framework rerenders the modified component and processes any enqueued actions.

You don't need to use $A.run() if your code is executed as part of the framework's call stack; for example, your code is handling an event or in the callback for a client-side controller action.

An example of where you need to use $A.run() is calling window.setTimeout() in an event handler to execute some logic after a time delay. This puts your code outside the framework's call stack.

This sample sets the visible attribute on a component to true after a five-second delay.

1swfobject.registerObject("clippy.codeblock-0", "9");window.setTimeout(function () {
2    $A.run(function() {
3        cmp.set("v.visible", true);
4    });
5}, 5000);

Note how the code updating a component attribute is wrapped in $A.run(), which ensures that the framework rerenders the modified component.