title: How to handle async errors correctly?
body: <p>When making a GraphQL query, and the query fails, Apollo solves this by having a data-object and an error-object.</p>
  
  <p>When an async error is happening, we get the same functionality with one data-object and one error-object. But, this time we get an <code>UnhandledPromiseRejectionWarning</code> too, with information about: <code>DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.</code>.</p>
  
  <p>So, we obviously need to solve this, but we want our async-functions to cast errors all the way up to Apollo. Do we need to try...catch all functions and just pass our error further up the tree? Coming from C#, were an exception just goes all the way to the top if never caught, it sounds like a tedious job to tell Apollo GraphQL that one (or more) leaves failed to retrieve data from the database.</p>
  
  <p>Is there a better way to solve this, or is there any way to tell javascript/node that an uncaught error should be passed further up the call tree, until it's caught?</p>