I have a pre-existing non-Angular API library in my project. It has a .request method which returns jQuery.Deferred promises. I created a simple Angular service
.request
My current solution is to use instanceof:
instanceof
var AngularPromise = $q.resolve().constructor; console.log($q.resolve() instanceof AngularPromise); // true
This guarantees to return true iff the object is indeed an Angular Promise.
Demo: https://jsfiddle.net/DerekL/cmzp7ovj/