title: Waiting for async request to return before proceeding Google Apps Script
body: <p>Some code in Google Apps Script I am currently producing has a need for an object to be completed with one of the properties being set by the result of an async request. This object, and specifically, this property are then used later down the line. However, because the request has not returned by the time the functions needing that property run, they are not evaluating properly.
  My code is as follows:</p>
  
  <pre><code>function Thing(val) {
      var self = this
  
      var createSuccess = function(data) {
          self.foo = data;
      }
  
      var init = function(val) {
          google.script.run.withSuccessHandler(createSuccess).serverFunc(val);
      };
  
      init(val);
  }
  
  function objStuff() {
      var foobar = new Thing('bar');
      // Do stuff with foobar.foo
  }
  
  objStuff();
  </code></pre>
  
  <p>Currently the stuff using foobar.foo does not work correctly, as the script has not waited for the return value of the script before proceeding. </p>
  
  <p>Is there a way I can wait for the foo property to be evaluated with the async request before proceeding with the rest of my script?</p>