title: Receiving cancel event using Future in Combine
body: <p>When using a Future I'm not able to receive the cancel event. </p>
  
  <pre><code>Future&lt;String, Never&gt; { promise in
      promise(.success("Hello Stackoverflow"))
  }
  .eraseToAnyPublisher()
      .handleEvents(receiveCancel: {
          print("Cancel event received here")
      })
      .sink(receiveValue: { value in
          print(value)
      })
      .store(in: &amp;disposeBag)
  
  disposeBag.map { $0.cancel() }
  </code></pre>
  
  <p>Interestingly using a subject it's working and I'm getting the event.</p>
  
  <pre><code>let subject = PassthroughSubject&lt;String, Never&gt;()
  
  subject.send("Hello Stackoverflow")
  
      subject.eraseToAnyPublisher()
      .handleEvents(receiveCancel: {
          print("Cancel event received here")
      })
      .sink(receiveValue: { value in
          print(value)
      })
      .store(in: &amp;disposeBag)
  
  disposeBag.map { $0.cancel() }
  </code></pre>
  
  <p>So why is Combine behaving that way and how I can resolve this?</p>