Test whether an object looks like a promises-a+ promise
$ npm install is-promise
You can also use it client side via npm.
var isPromise = require('is-promise');
isPromise({then:function () {...}});//=>true
isPromise(null);//=>false
isPromise({});//=>false
isPromise({then: true})//=>false
MIT