   [n ob]
   {:pre [(observable? ob) (number? n)]}
   (.skip ob n))
+
+(defn skip-while
+  "Bypasses elements in an observable sequence as long
+  as a specified condition is true and then returns the
+  remaining elements."
+  [f ob]
+  {:pre [(observable? ob) (fn? f)]}
+  (.skipWhile ob f))
+
+(defn skip-until
+  "Returns the values from the source observable sequence
+  only after the other observable sequence produces a value."
+  [pob ob]
+  {:pre [(observable? ob) (observable? pob)]}
+  (.skipUntil ob pob))
 
 (defn take
   "Bypasses a specified number of elements in an

  "Filters the elements of an observable sequence
  based on a predicate."
  [f ob]
  {:pre [(observable? ob) (fn? f)]}
  (.filter ob f))

(defn map
  "Apply a function to each element of an observable
  sequence."
  [f ob]
  {:pre [(observable? ob) (fn? f)]}
  (.map ob f))

(defn flat-map

  observable sequences or Promises or array/iterable
  into one observable sequence."
  [f ob]
  {:pre [(observable? ob)]}
  (.flatMap ob f))

(defn skip
