/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ import {Observable} from 'rxjs/Observable'; import {$$observable as symbolObservable} from 'rxjs/symbol/observable'; /** * Determine if the argument is shaped like a Promise */ export function isPromise(obj: any): obj is Promise { // allow any Promise/A+ compliant thenable. // It's up to the caller to ensure that obj.then conforms to the spec return !!obj && typeof obj.then === 'function'; } /** * Determine if the argument is an Observable */ export function isObservable(obj: any | Observable): obj is Observable { return !!(obj && obj[symbolObservable]); }