title: How to call back async function from Rx Subscribe?
body: <p>I would like to call back an async function within an Rx subscription.</p>
  
  <p>E.g. like that:</p>
  
  <pre><code>public class Consumer
  {
      private readonly Service _service = new Service();
  
      public ReplaySubject&lt;string&gt; Results = new ReplaySubject&lt;string&gt;();
  
      public void Trigger()
      {
          Observable.Timer(TimeSpan.FromMilliseconds(100)).Subscribe(async _ =&gt; await RunAsync());
      }
  
      public Task RunAsync()
      {
          return _service.DoAsync();
      }
  }
  
  public class Service
  {
      public async Task&lt;string&gt; DoAsync()
      {
          return await Task.Run(() =&gt; Do());
      }
  
      private static string Do()
      {
          Thread.Sleep(TimeSpan.FromMilliseconds(200));
          throw new ArgumentException("invalid!");
          return "foobar";
      }
  }
  
  [Test]
  public async Task Test()
  {
      var sut = new Consumer();
      sut.Trigger();
      var result = await sut.Results.FirstAsync();
  }
  </code></pre>
  
  <p>What needs to be done, in order to catch the exception properly?</p>