refactor: use isObservable provided by rxjs 6.1+ (#27668)

Refactor common, core, forms, router to use the isObservable method from rxjs 6.1+. Remove the isObservable method from core.

PR Close #27668
This commit is contained in:
Christopher Dahm
2018-12-14 12:19:26 -05:00
committed by Miško Hevery
parent 9e5065a778
commit 7e6350ce2e
13 changed files with 22 additions and 50 deletions

View File

@ -5,8 +5,7 @@
* 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 {isObservable, isPromise} from '@angular/core/src/util/lang';
import {of } from 'rxjs';
import {isPromise} from '@angular/core/src/util/lang';
{
describe('isPromise', () => {
@ -26,22 +25,4 @@ import {of } from 'rxjs';
expect(isPromise(null)).toEqual(false);
});
});
describe('isObservable', () => {
it('should be true for an Observable', () => expect(isObservable(of (true))).toEqual(true));
it('should be true if the argument is the object with subscribe function',
() => expect(isObservable({subscribe: () => {}})).toEqual(true));
it('should be false if the argument is undefined',
() => expect(isObservable(undefined)).toEqual(false));
it('should be false if the argument is null', () => expect(isObservable(null)).toEqual(false));
it('should be false if the argument is an object',
() => expect(isObservable({})).toEqual(false));
it('should be false if the argument is a function',
() => expect(isObservable(() => {})).toEqual(false));
});
}

View File

@ -17,6 +17,7 @@ ts_library(
"//packages/core/testing",
"//packages/platform-browser",
"//packages/private/testing",
"@npm//rxjs",
],
)

View File

@ -6,6 +6,7 @@
* found in the LICENSE file at https://angular.io/license
*/
import {Observable} from 'rxjs';
import {AfterContentChecked, AfterContentInit, AfterViewChecked, AfterViewInit, ChangeDetectorRef, DoCheck, ElementRef, ErrorHandler, EventEmitter, Injector, OnChanges, OnDestroy, OnInit, Renderer2, SimpleChange, TemplateRef, ViewContainerRef,} from '@angular/core';
import {getDebugContext} from '@angular/core/src/errors';
import {ArgumentType, DepFlags, NodeFlags, Services, anchorDef, asElementData, directiveDef, elementDef, providerDef, textDef} from '@angular/core/src/view/index';
@ -341,13 +342,11 @@ import {ARG_TYPE_VALUES, checkNodeInlineOrDynamic, createRootView, createAndGetR
let unsubscribeSpy: any;
class SomeService {
emitter = {
subscribe: (callback: any) => {
const subscription = emitter.subscribe(callback);
unsubscribeSpy = spyOn(subscription, 'unsubscribe').and.callThrough();
return subscription;
}
};
emitter = new Observable((callback: any) => {
const subscription = emitter.subscribe(callback);
unsubscribeSpy = spyOn(subscription, 'unsubscribe').and.callThrough();
return subscription;
});
}
const handleEvent = jasmine.createSpy('handleEvent');