title: Swift Combine: Getting only the first value at subscription?
body: <p>I have a set of traditional <code>UIViewController</code>s and <code>UIView</code>s that I’m passing a <code>Publisher</code> to:</p>
  <pre class="lang-swift prettyprint-override"><code>class MyModel : ObservableObject {
      @Published var product: Product?
  }
  
  …
  
  let someView = SomeView(product: self.model.$product)
  
  …
  
  class SomeView : UIView {
      init(product: Published&lt;Product?&gt;.Publisher) {
          self.sub = product.sink { prod in &lt;do stuff when it changes&gt; }
      }
  </code></pre>
  <p>I need to do something with one of the properties of <code>MyModel.product</code> only once when the view inits, and <em>not</em> every subsequent time <code>product</code> updates. Is there anything like this:</p>
  <pre class="lang-swift prettyprint-override"><code>    self.pub = product
          .sinkOnSub { prod in &lt;do when creating this subscription&gt; }
          .sinkRemaining { prod in &lt;do subsequent times&gt; }
  </code></pre>