index.js
function isPromise(item) {
	if (!item) return false;
	return (
		(util.types && util.types.isPromise && util.types.isPromise(item))
		|| (item.constructor && item.constructor.name == 'Promise')
		|| (!item instanceof objectInstance && item.then && typeof item.then == 'function')
	);
}
function isPromise(item) {
	if (!item) return false;
	return (
		(util.types && util.types.isPromise && util.types.isPromise(item))
		|| (item.constructor && item.constructor.name == 'Promise')
		|| (!item instanceof objectInstance && item.then && typeof item.then == 'function')
	);
}
Try and idenfity if the given item is a promise or is promise like
@param {*} item The item to examine
@returns {boolean} Whether the item looks like a promise