title: Making a custom RXJS pipe that accepts an observable and waits until that observable meets a condition
body: <p>I have the following code</p>
  
  <pre><code>export function featureReady(feature: BaseFeatureService) {
    return pipe(
      zip(feature.loading$),
      filter(([inputObject, loading]) =&gt; !loading),
      map(([inputObject, loading]) =&gt; {
        return inputObject;
      })
    );
  }
  </code></pre>
  
  <p>And I wish to consume it like this.</p>
  
  <pre><code>observable$.pipe(
     featureReady(this.propertyFeatureService)
  );
  </code></pre>
  
  <p><code>zip</code> is now deprecated in place of the static <code>zip</code> which means my above solution will stop working is there an RXJS operator I can replace either the <code>zip</code> operator or the whole solution with?</p>
  
  <p>I would also be happy with any solution that accepts an `Observable' for the wait condition, as I wouldn't mind passing in <code>feature.loading$</code></p>
  
  <p>Thanks.</p>