/**
 * Gibt zurück, ob ein Objekt `Promise`-ähnlich ist (d.h. eine `then`-Methode hat).
 *
 * @param {Object} value
 *         Ein Objekt, das einem "Versprechen" ähneln kann oder auch nicht.
 *
 * @return {boolean}
 *         Ob das Objekt `Promise`-ähnlich ist oder nicht.
 * /
export function isPromise(value) {
  return value !== undefined && value !== null && typeof value.then === 'function';
}

/**
 * Ein Versprechen-ähnliches Objekt zum Schweigen bringen.
 *
 * Dies ist nützlich, um nicht schädliche, aber potenziell verwirrende "nicht gefangene
 * play promise" Ablehnungsfehlermeldungen.
 *
 * @param {Object} value
 *         Ein Objekt, das einem "Versprechen" ähneln kann oder auch nicht.
 * /
export function silencePromise(value) {
  if (isPromise(Wert)) {
    value.then(null, (e) => {});
  }
}