code: function (id) {
      var self = this;
  
      // This should not be possible: you can only call removeHandle by having
      // access to the ObserveHandle, which isn't returned to user code until the
      // multiplex is ready.
      if (!self._ready())
        throw new Error("Can't remove handles until the multiplex is ready");
  
      delete self._handles[id];
  
      Package.facts && Package.facts.Facts.incrementServerFact(
        "mongo-livedata", "observe-handles", -1);
  
      if (_.isEmpty(self._handles) &&
          self._addHandleTasksScheduledButNotPerformed === 0) {
        self._stop();
      }
    }
docs: Remove an observe handle. If it was the last observe handle, call the onStop callback; you cannot add any more observe handles after this.  This is not synchronized with polls and handle additions: this means that you can safely call it from within an observe callback, but it also means that we have to be careful when we iterate over _handles.