title: Event listener - Random code execution order
body: <p>I have a UI button and I am programatically adding a onClick listener to it. It's supposed to display a debug message first and then asynchronously start loading a scene.</p>
  <p>For some reason it loads the scene first and then displays the message to the console.</p>
  <p>Code below</p>
  <pre><code>void Awake()
  {
      button = this.GetComponent&lt;Button&gt;();
  
      button.onClick.RemoveAllListeners();
      button.onClick.AddListener(() =&gt;
      {
          Debug.Log(&quot;Loading level ... &quot;);
          SceneManager.LoadSceneAsync(levelName);
      });
  }
  </code></pre>
  <p>I have went against the logic and tried logging the message after loading the scene but the result was the same.</p>