function isPromise(value) {
  return !!(
  	// Instance check.
    value instanceof Promise || (
      // Ducktype check.
      value
      && typeof value === 'object'
      && typeof value.then === 'function'
      && typeof value.catch === 'function'
    )
  );
}
/**
 * The isPromise method examines a value to determine if it is a Promise.
 * Does a ducktype check. Use instanceof only an instance check is desired.
 * @param  {any}  value The value to examine.
 * @returns {boolean}  True if Promise, false if not.
 */
The isPromise method examines a value to determine if it is a Promise.
Does a ducktype check. Use instanceof only an instance check is desired.
@param  {any}  value The value to examine.
@returns {boolean}  True if Promise, false if not.
The isPromise method examines a value to determine if it is a Promise . Does a ducktype check . Use instanceof only an instance check is desired . @param { any } value The value to examine . @returns { boolean } True if Promise false if not .
function isPromise(value) {
  return !!(
    value instanceof Promise || (
      value
      && typeof value === 'object'
      && typeof value.then === 'function'
      && typeof value.catch === 'function'
    )
  );
}
function isPromise ( value ) { return ! ! ( value instanceof Promise || ( value && typeof value === 'object' && typeof value . then === 'function' && typeof value . catch === 'function' ) ) ; }
The isPromise method examines a value to determine if it is a Promise.
The isPromise method examines a value to determine if it is a Promise .
// Instance check. // Ducktype check.