refactor(EventEmitter): rename .next() to .emit()

BREAKING CHANGE:

EventEmitter#next(value) is deprecated, use EventEmitter#emit(value)
instead.

Closes #4287

Closes #5302
This commit is contained in:
Rob Wormald
2015-11-15 23:58:59 -08:00
parent 929abb9aa3
commit 3fa287aae2
44 changed files with 103 additions and 78 deletions

View File

@ -117,7 +117,7 @@ export class NgControlName extends NgControl implements OnChanges,
viewToModelUpdate(newValue: any): void {
this.viewModel = newValue;
ObservableWrapper.callNext(this.update, newValue);
ObservableWrapper.callEmit(this.update, newValue);
}
get path(): string[] { return controlPath(this.name, this._parent); }

View File

@ -160,7 +160,7 @@ export class NgForm extends ControlContainer implements Form {
}
onSubmit(): boolean {
ObservableWrapper.callNext(this.ngSubmit, null);
ObservableWrapper.callEmit(this.ngSubmit, null);
return false;
}

View File

@ -110,7 +110,7 @@ export class NgFormControl extends NgControl implements OnChanges {
viewToModelUpdate(newValue: any): void {
this.viewModel = newValue;
ObservableWrapper.callNext(this.update, newValue);
ObservableWrapper.callEmit(this.update, newValue);
}
private _isControlChanged(changes: {[key: string]: any}): boolean {

View File

@ -157,7 +157,7 @@ export class NgFormModel extends ControlContainer implements Form,
}
onSubmit(): boolean {
ObservableWrapper.callNext(this.ngSubmit, null);
ObservableWrapper.callEmit(this.ngSubmit, null);
return false;
}

View File

@ -86,6 +86,6 @@ export class NgModel extends NgControl implements OnChanges {
viewToModelUpdate(newValue: any): void {
this.viewModel = newValue;
ObservableWrapper.callNext(this.update, newValue);
ObservableWrapper.callEmit(this.update, newValue);
}
}

View File

@ -128,8 +128,8 @@ export abstract class AbstractControl {
}
if (emitEvent) {
ObservableWrapper.callNext(this._valueChanges, this._value);
ObservableWrapper.callNext(this._statusChanges, this._status);
ObservableWrapper.callEmit(this._valueChanges, this._value);
ObservableWrapper.callEmit(this._statusChanges, this._status);
}
if (isPresent(this._parent) && !onlySelf) {
@ -185,7 +185,7 @@ export abstract class AbstractControl {
this._status = this._calculateStatus();
if (emitEvent) {
ObservableWrapper.callNext(this._statusChanges, this._status);
ObservableWrapper.callEmit(this._statusChanges, this._status);
}
if (isPresent(this._parent)) {

View File

@ -66,5 +66,5 @@ export class QueryList<T> {
reset(res: T[]): void { this._results = res; }
/** @internal */
notifyOnChanges(): void { this._emitter.next(this); }
notifyOnChanges(): void { this._emitter.emit(this); }
}

View File

@ -1321,8 +1321,8 @@ export var Input: InputFactory = makePropDecorator(InputMetadata);
* @Output('everyFiveSeconds') five5Secs = new EventEmitter();
*
* constructor() {
* setInterval(() => this.everySecond.next("event"), 1000);
* setInterval(() => this.five5Secs.next("event"), 5000);
* setInterval(() => this.everySecond.emit("event"), 1000);
* setInterval(() => this.five5Secs.emit("event"), 5000);
* }
* }
*

View File

@ -496,8 +496,8 @@ export class DirectiveMetadata extends InjectableMetadata {
* five5Secs = new EventEmitter();
*
* constructor() {
* setInterval(() => this.everySecond.next("event"), 1000);
* setInterval(() => this.five5Secs.next("event"), 5000);
* setInterval(() => this.everySecond.emit("event"), 1000);
* setInterval(() => this.five5Secs.emit("event"), 5000);
* }
* }
*
@ -1047,8 +1047,8 @@ export class InputMetadata {
* @Output('everyFiveSeconds') five5Secs = new EventEmitter();
*
* constructor() {
* setInterval(() => this.everySecond.next("event"), 1000);
* setInterval(() => this.five5Secs.next("event"), 5000);
* setInterval(() => this.everySecond.emit("event"), 1000);
* setInterval(() => this.five5Secs.emit("event"), 5000);
* }
* }
*

View File

@ -187,7 +187,7 @@ export class NgZone {
/** @internal */
_notifyOnTurnStart(parentRun): void {
parentRun.call(this._innerZone, () => { this._onTurnStartEvents.next(null); });
parentRun.call(this._innerZone, () => { this._onTurnStartEvents.emit(null); });
}
/**
@ -216,7 +216,7 @@ export class NgZone {
/** @internal */
_notifyOnTurnDone(parentRun): void {
parentRun.call(this._innerZone, () => { this._onTurnDoneEvents.next(null); });
parentRun.call(this._innerZone, () => { this._onTurnDoneEvents.emit(null); });
}
/**
@ -255,7 +255,7 @@ export class NgZone {
/** @internal */
_notifyOnEventDone(): void {
this.runOutsideAngular(() => { this._onEventDoneEvents.next(null); });
this.runOutsideAngular(() => { this._onEventDoneEvents.emit(null); });
}
/**
@ -440,7 +440,7 @@ export class NgZone {
zone = zone.parent;
}
if (ObservableWrapper.hasSubscribers(this._onErrorEvents)) {
ObservableWrapper.callNext(this._onErrorEvents, new NgZoneError(e, trace));
ObservableWrapper.callEmit(this._onErrorEvents, new NgZoneError(e, trace));
}
if (isPresent(this._onErrorHandler)) {
this._onErrorHandler(e, trace);

View File

@ -46,9 +46,14 @@ class ObservableWrapper {
s.cancel();
}
@Deprecated('Use callEmit() instead')
static void callNext(EventEmitter emitter, value) {
emitter.add(value);
}
static void callEmit(EventEmitter emitter, value) {
emitter.add(value);
}
static void callError(EventEmitter emitter, error) {
emitter.addError(error);
@ -85,6 +90,10 @@ class EventEmitter<T> extends Stream<T> {
void add(value) {
_controller.add(value);
}
void emit(value) {
_controller.add(value);
}
void addError(error) {
_controller.addError(error);

View File

@ -39,8 +39,13 @@ export class ObservableWrapper {
static dispose(subscription: any) { subscription.unsubscribe(); }
/**
* @deprecated - use callEmit() instead
*/
static callNext(emitter: EventEmitter<any>, value: any) { emitter.next(value); }
static callEmit(emitter: EventEmitter<any>, value: any) { emitter.emit(value); }
static callError(emitter: EventEmitter<any>, error: any) { emitter.error(error); }
static callComplete(emitter: EventEmitter<any>) { emitter.complete(); }
@ -78,9 +83,9 @@ export class ObservableWrapper {
* toggle() {
* this.visible = !this.visible;
* if (this.visible) {
* this.open.next(null);
* this.open.emit(null);
* } else {
* this.close.next(null);
* this.close.emit(null);
* }
* }
* }
@ -104,6 +109,13 @@ export class EventEmitter<T> extends Subject<T> {
this._isAsync = isAsync;
}
emit(value: T) { super.next(value); }
/**
* @deprecated - use .emit(value) instead
*/
next(value: any) { super.next(value); }
subscribe(generatorOrNext?: any, error?: any, complete?: any): any {
if (generatorOrNext && typeof generatorOrNext === 'object') {
let schedulerFn = this._isAsync ?

View File

@ -19,7 +19,7 @@ export class SpyLocation implements Location {
path(): string { return this._path; }
simulateUrlPop(pathname: string) { ObservableWrapper.callNext(this._subject, {'url': pathname}); }
simulateUrlPop(pathname: string) { ObservableWrapper.callEmit(this._subject, {'url': pathname}); }
prepareExternalUrl(url: string): string {
if (url.length > 0 && !url.startsWith('/')) {

View File

@ -13,7 +13,7 @@ export class MockLocationStrategy extends LocationStrategy {
simulatePopState(url: string): void {
this.internalPath = url;
ObservableWrapper.callNext(this._subject, null);
ObservableWrapper.callEmit(this._subject, null);
}
path(): string { return this.internalPath; }
@ -26,7 +26,7 @@ export class MockLocationStrategy extends LocationStrategy {
}
simulateUrlPop(pathname: string): void {
ObservableWrapper.callNext(this._subject, {'url': pathname});
ObservableWrapper.callEmit(this._subject, {'url': pathname});
}
pushState(ctx: any, title: string, path: string, query: string): void {

View File

@ -53,7 +53,7 @@ export class Location {
var browserBaseHref = this.platformStrategy.getBaseHref();
this._baseHref = stripTrailingSlash(stripIndexHtml(browserBaseHref));
this.platformStrategy.onPopState(
(_) => { ObservableWrapper.callNext(this._subject, {'url': this.path(), 'pop': true}); });
(_) => { ObservableWrapper.callEmit(this._subject, {'url': this.path(), 'pop': true}); });
}
/**

View File

@ -241,7 +241,7 @@ export class Router {
return PromiseWrapper.all(unsettledInstructions);
}
private _emitNavigationFinish(url): void { ObservableWrapper.callNext(this._subject, url); }
private _emitNavigationFinish(url): void { ObservableWrapper.callEmit(this._subject, url); }
private _afterPromiseFinishNavigating(promise: Promise<any>): Promise<any> {
return PromiseWrapper.catchError(promise.then((_) => this._finishNavigating()), (err) => {

View File

@ -216,7 +216,7 @@ class UpgradeNg1ComponentAdapter implements OnChanges, DoCheck {
}
for (var j = 0; j < outputs.length; j++) {
var emitter = this[outputs[j]] = new EventEmitter();
this.setComponentProperty(outputs[j], ((emitter) => (value) => emitter.next(value))(emitter));
this.setComponentProperty(outputs[j], ((emitter) => (value) => emitter.emit(value))(emitter));
}
for (var k = 0; k < propOuts.length; k++) {
this[propOuts[k]] = new EventEmitter();
@ -246,7 +246,7 @@ class UpgradeNg1ComponentAdapter implements OnChanges, DoCheck {
// ignore because NaN != NaN
} else {
var eventEmitter: EventEmitter<any> = this[this.propOuts[i]];
eventEmitter.next(lastValues[i] = value);
eventEmitter.emit(lastValues[i] = value);
}
}
}

View File

@ -107,7 +107,7 @@ export class ClientMessageBroker_ extends ClientMessageBroker {
if (id != null) {
message['id'] = id;
}
ObservableWrapper.callNext(this._sink, message);
ObservableWrapper.callEmit(this._sink, message);
return promise;
}

View File

@ -125,9 +125,9 @@ export class PostMessageBusSource implements MessageBusSource {
if (StringMapWrapper.contains(this._channels, channel)) {
var channelInfo = this._channels[channel];
if (channelInfo.runInZone) {
this._zone.run(() => { channelInfo.emitter.next(data.message); });
this._zone.run(() => { channelInfo.emitter.emit(data.message); });
} else {
channelInfo.emitter.next(data.message);
channelInfo.emitter.emit(data.message);
}
}
}

View File

@ -75,7 +75,7 @@ export class ServiceMessageBroker_ extends ServiceMessageBroker {
private _wrapWebWorkerPromise(id: string, promise: Promise<any>, type: Type): void {
PromiseWrapper.then(promise, (result: any) => {
ObservableWrapper.callNext(
ObservableWrapper.callEmit(
this._sink,
{'type': 'result', 'value': this._serializer.serialize(result, type), 'id': id});
});

View File

@ -101,7 +101,7 @@ export class EventDispatcher implements RenderEventDispatcher {
var serializedLocals = StringMapWrapper.create();
StringMapWrapper.set(serializedLocals, '$event', serializedEvent);
ObservableWrapper.callNext(this._sink, {
ObservableWrapper.callEmit(this._sink, {
"viewRef": this._serializer.serialize(this._viewRef, RenderViewRef),
"elementIndex": elementIndex,
"eventName": eventName,

View File

@ -20,7 +20,7 @@ export class WebWorkerSetup {
ObservableWrapper.subscribe(source, (message: string) => {
if (StringWrapper.equals(message, "ready")) {
ObservableWrapper.callNext(sink, {"rootUrl": this.rootUrl});
ObservableWrapper.callEmit(sink, {"rootUrl": this.rootUrl});
}
});
}

View File

@ -140,7 +140,7 @@ export function bootstrapWebWorkerCommon(
ObservableWrapper.dispose(subscription);
});
ObservableWrapper.callNext(bus.to(SETUP_CHANNEL), "ready");
ObservableWrapper.callEmit(bus.to(SETUP_CHANNEL), "ready");
return bootstrapProcess.promise;
});
return PromiseWrapper.then(appPromise, (app) => app.bootstrap(appComponentType));