title: How to "loosely" trigger a function?
body: <p>I have the following async recursive code:</p>
  
  <pre><code>func syncData() {
      dal.getList(...) { [unowned self] list, error in
          if let objects = list {
  
          if oneTime {
              oneTime = false
              syncOtherStuffNow()
          }
  
          syncData()  // recurse until all data synced
  
  
          } else if let error = error {... }
  
  
  
  func syncOtherStuffNow() { }   // with its own recursion
  </code></pre>
  
  <p>My understanding is that the recursion will build the call stack until all the function calls complete, at which point they will all unwind and free up the heap.</p>
  
  <p>I also want to trigger another function (<code>syncOtherStuffNow</code>) from within the closure.  But don't want to bind it to the closure with a strong reference waiting for it's return (even though it's async too).</p>
  
  <p>How can I essentially <em>trigger</em> the <code>syncOtherStuffNow()</code> selector to run, and not affect the current closure with hanging on to its return call?</p>
  
  <p>I thought of using Notifications, but that seems overkill given the two functions are in the same class.</p>