stop(): Promise<string | Error> {
    return new Promise((resolve: string => void, reject: Error => void) => {
      try {
        this.input.removeEventListener('input', this.search);

        // Remove placeholderNode
        if (this.options.placeholder) {
          if (this.placeholderNode.parentNode) {
            this.placeholderNode.parentNode.removeChild(this.placeholderNode);
          } else {
            reject(new Error(errors.impossiblePlaceholder));
          }
        }

        // Remove marks
        if (this.options.mark) {
          this.elementsArray.forEach((element: HTMLElement) => {
            element.innerHTML = element.innerHTML.replace(/<\/?mark>/g, '');
          });
        }

        // Done
        this.running = false;
        resolve('This instance of Holmes has been stopped.');
      } catch (err) {
        reject(err);
      }
    });
  }
Remove the current event listener
@function stop
@see this.start
@return {Promise} resolves when the event is removed
@throws {Error} If the placeholder couldn't be removed because it has no parent
@memberOf holmes