I need to be able to delay the createView in my Sidebar until u.fetchAsync finishes executing. Here's my code so far:
What you're describing is blocking code execution until your request is completed, which isn't a good model. In event-driven programming, events determine the flow of the program.
So, createView is called when the widget receives an onLoadView event from the container, and updateView is called when the widget receives an onShowView event from the container. Most developers create their controls in createView and then update those controls in their updateView handler. If the content is available in your app by the time onLoadView is fired, then you can use that data then. Most times it's not, though, so the updateView handler can be used to initiate the fetch or retrieve the results from a previous fetch that's stored in the message center.
A pattern I often use is to subscribe to the onApplicationStartup event and do my essential fetches then and store the results in the message center. Then, in my updateView handler of each view I'll check the message center to see if the data is there and if not I'll initiate the fetch again.