title: Should I use [weak self] in PromiseKit blocks?
body: <p>PromiseKit states the following on <a href="http://promisekit.org/faq/" rel="noreferrer">their website</a>:</p>
  
  <blockquote>
    <h3>Should I be concerned about retain cycles?</h3>
    
    <p>tl;dr: it’s safe to use self in promise handlers.</p>
    
    <p>This is safe:</p>
  
  <pre><code>somePromise.then {
      self.doSomething()
  }
  </code></pre>
    
    <p>Provided <code>somePromise</code> resolves, the function passed to <code>then</code> will be released, thus specifying <code>[weak self]</code> is not necessary.</p>
    
    <p>Specifying [unowned self] is likely dangerous.</p>
    
    <h3>You’re telling me not to worry about retain cycles?!</h3>
    
    <p>No, it’s just that by default you are not going to cause retain cycles when using PromiseKit. But it is still possible...</p>
  </blockquote>
  
  <p>Does this mean I should never use <code>[weak self]</code> in PromiseKit blocks? Are there ever situations where I would still need to use <code>[weak self]</code>? How exactly is it preventing a retain cycle?</p>