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

@ -276,6 +276,9 @@ var ObservableWrapper = {
callNext: function(ob, val) { callNext: function(ob, val) {
ob.fn(val); ob.fn(val);
}, },
callEmit: function(ob, val) {
ob.fn(val);
},
subscribe: function(ob, fn) { subscribe: function(ob, fn) {
ob.fn = fn; ob.fn = fn;

View File

@ -230,7 +230,7 @@ import {bootstrap} from 'angular2/web_worker/ui';
var instance = bootstrap("loader.js"); var instance = bootstrap("loader.js");
var bus = instance.bus; var bus = instance.bus;
bus.initChannel("My Custom Channel"); bus.initChannel("My Custom Channel");
bus.to("My Custom Channel").next("hello from the UI"); bus.to("My Custom Channel").emit("hello from the UI");
``` ```
```TypeScript ```TypeScript
// background_index.ts, which is running on the WebWorker // background_index.ts, which is running on the WebWorker

View File

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

View File

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

View File

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

View File

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

View File

@ -86,6 +86,6 @@ export class NgModel extends NgControl implements OnChanges {
viewToModelUpdate(newValue: any): void { viewToModelUpdate(newValue: any): void {
this.viewModel = newValue; 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) { if (emitEvent) {
ObservableWrapper.callNext(this._valueChanges, this._value); ObservableWrapper.callEmit(this._valueChanges, this._value);
ObservableWrapper.callNext(this._statusChanges, this._status); ObservableWrapper.callEmit(this._statusChanges, this._status);
} }
if (isPresent(this._parent) && !onlySelf) { if (isPresent(this._parent) && !onlySelf) {
@ -185,7 +185,7 @@ export abstract class AbstractControl {
this._status = this._calculateStatus(); this._status = this._calculateStatus();
if (emitEvent) { if (emitEvent) {
ObservableWrapper.callNext(this._statusChanges, this._status); ObservableWrapper.callEmit(this._statusChanges, this._status);
} }
if (isPresent(this._parent)) { if (isPresent(this._parent)) {

View File

@ -66,5 +66,5 @@ export class QueryList<T> {
reset(res: T[]): void { this._results = res; } reset(res: T[]): void { this._results = res; }
/** @internal */ /** @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(); * @Output('everyFiveSeconds') five5Secs = new EventEmitter();
* *
* constructor() { * constructor() {
* setInterval(() => this.everySecond.next("event"), 1000); * setInterval(() => this.everySecond.emit("event"), 1000);
* setInterval(() => this.five5Secs.next("event"), 5000); * setInterval(() => this.five5Secs.emit("event"), 5000);
* } * }
* } * }
* *

View File

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

View File

@ -187,7 +187,7 @@ export class NgZone {
/** @internal */ /** @internal */
_notifyOnTurnStart(parentRun): void { _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 */ /** @internal */
_notifyOnTurnDone(parentRun): void { _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 */ /** @internal */
_notifyOnEventDone(): void { _notifyOnEventDone(): void {
this.runOutsideAngular(() => { this._onEventDoneEvents.next(null); }); this.runOutsideAngular(() => { this._onEventDoneEvents.emit(null); });
} }
/** /**
@ -440,7 +440,7 @@ export class NgZone {
zone = zone.parent; zone = zone.parent;
} }
if (ObservableWrapper.hasSubscribers(this._onErrorEvents)) { 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)) { if (isPresent(this._onErrorHandler)) {
this._onErrorHandler(e, trace); this._onErrorHandler(e, trace);

View File

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

View File

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

View File

@ -19,7 +19,7 @@ export class SpyLocation implements Location {
path(): string { return this._path; } 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 { prepareExternalUrl(url: string): string {
if (url.length > 0 && !url.startsWith('/')) { if (url.length > 0 && !url.startsWith('/')) {

View File

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

View File

@ -53,7 +53,7 @@ export class Location {
var browserBaseHref = this.platformStrategy.getBaseHref(); var browserBaseHref = this.platformStrategy.getBaseHref();
this._baseHref = stripTrailingSlash(stripIndexHtml(browserBaseHref)); this._baseHref = stripTrailingSlash(stripIndexHtml(browserBaseHref));
this.platformStrategy.onPopState( 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); 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> { private _afterPromiseFinishNavigating(promise: Promise<any>): Promise<any> {
return PromiseWrapper.catchError(promise.then((_) => this._finishNavigating()), (err) => { 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++) { for (var j = 0; j < outputs.length; j++) {
var emitter = this[outputs[j]] = new EventEmitter(); 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++) { for (var k = 0; k < propOuts.length; k++) {
this[propOuts[k]] = new EventEmitter(); this[propOuts[k]] = new EventEmitter();
@ -246,7 +246,7 @@ class UpgradeNg1ComponentAdapter implements OnChanges, DoCheck {
// ignore because NaN != NaN // ignore because NaN != NaN
} else { } else {
var eventEmitter: EventEmitter<any> = this[this.propOuts[i]]; 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) { if (id != null) {
message['id'] = id; message['id'] = id;
} }
ObservableWrapper.callNext(this._sink, message); ObservableWrapper.callEmit(this._sink, message);
return promise; return promise;
} }

View File

@ -125,9 +125,9 @@ export class PostMessageBusSource implements MessageBusSource {
if (StringMapWrapper.contains(this._channels, channel)) { if (StringMapWrapper.contains(this._channels, channel)) {
var channelInfo = this._channels[channel]; var channelInfo = this._channels[channel];
if (channelInfo.runInZone) { if (channelInfo.runInZone) {
this._zone.run(() => { channelInfo.emitter.next(data.message); }); this._zone.run(() => { channelInfo.emitter.emit(data.message); });
} else { } 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 { private _wrapWebWorkerPromise(id: string, promise: Promise<any>, type: Type): void {
PromiseWrapper.then(promise, (result: any) => { PromiseWrapper.then(promise, (result: any) => {
ObservableWrapper.callNext( ObservableWrapper.callEmit(
this._sink, this._sink,
{'type': 'result', 'value': this._serializer.serialize(result, type), 'id': id}); {'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(); var serializedLocals = StringMapWrapper.create();
StringMapWrapper.set(serializedLocals, '$event', serializedEvent); StringMapWrapper.set(serializedLocals, '$event', serializedEvent);
ObservableWrapper.callNext(this._sink, { ObservableWrapper.callEmit(this._sink, {
"viewRef": this._serializer.serialize(this._viewRef, RenderViewRef), "viewRef": this._serializer.serialize(this._viewRef, RenderViewRef),
"elementIndex": elementIndex, "elementIndex": elementIndex,
"eventName": eventName, "eventName": eventName,

View File

@ -20,7 +20,7 @@ export class WebWorkerSetup {
ObservableWrapper.subscribe(source, (message: string) => { ObservableWrapper.subscribe(source, (message: string) => {
if (StringWrapper.equals(message, "ready")) { 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.dispose(subscription);
}); });
ObservableWrapper.callNext(bus.to(SETUP_CHANNEL), "ready"); ObservableWrapper.callEmit(bus.to(SETUP_CHANNEL), "ready");
return bootstrapProcess.promise; return bootstrapProcess.promise;
}); });
return PromiseWrapper.then(appPromise, (app) => app.bootstrap(appComponentType)); return PromiseWrapper.then(appPromise, (app) => app.bootstrap(appComponentType));

View File

@ -990,7 +990,7 @@ class MyInput implements ControlValueAccessor {
registerOnTouched(fn) {} registerOnTouched(fn) {}
dispatchChangeEvent() { dispatchChangeEvent() {
ObservableWrapper.callNext(this.onChange, this.value.substring(1, this.value.length - 1)); ObservableWrapper.callEmit(this.onChange, this.value.substring(1, this.value.length - 1));
} }
} }

View File

@ -37,7 +37,7 @@ export function main() {
function asyncValidatorReturningObservable(c) { function asyncValidatorReturningObservable(c) {
var e = new EventEmitter(); var e = new EventEmitter();
PromiseWrapper.scheduleMicrotask(() => ObservableWrapper.callNext(e, {"async": true})); PromiseWrapper.scheduleMicrotask(() => ObservableWrapper.callEmit(e, {"async": true}));
return e; return e;
} }

View File

@ -101,9 +101,9 @@ export function main() {
var res = c.value != expected ? response : null; var res = c.value != expected ? response : null;
PromiseWrapper.scheduleMicrotask(() => { PromiseWrapper.scheduleMicrotask(() => {
ObservableWrapper.callNext(emitter, res); ObservableWrapper.callEmit(emitter, res);
// this is required because of a bug in ObservableWrapper // this is required because of a bug in ObservableWrapper
// where callComplete can fire before callNext // where callComplete can fire before callEmit
// remove this one the bug is fixed // remove this one the bug is fixed
TimerWrapper.setTimeout(() => { ObservableWrapper.callComplete(emitter); }, 0); TimerWrapper.setTimeout(() => { ObservableWrapper.callComplete(emitter); }, 0);
}); });

View File

@ -46,7 +46,7 @@ export function main() {
inject([AsyncTestCompleter], (async) => { inject([AsyncTestCompleter], (async) => {
pipe.transform(emitter); pipe.transform(emitter);
ObservableWrapper.callNext(emitter, message); ObservableWrapper.callEmit(emitter, message);
TimerWrapper.setTimeout(() => { TimerWrapper.setTimeout(() => {
expect(pipe.transform(emitter)).toEqual(new WrappedValue(message)); expect(pipe.transform(emitter)).toEqual(new WrappedValue(message));
@ -58,7 +58,7 @@ export function main() {
it("should return same value when nothing has changed since the last call", it("should return same value when nothing has changed since the last call",
inject([AsyncTestCompleter], (async) => { inject([AsyncTestCompleter], (async) => {
pipe.transform(emitter); pipe.transform(emitter);
ObservableWrapper.callNext(emitter, message); ObservableWrapper.callEmit(emitter, message);
TimerWrapper.setTimeout(() => { TimerWrapper.setTimeout(() => {
pipe.transform(emitter); pipe.transform(emitter);
@ -75,7 +75,7 @@ export function main() {
expect(pipe.transform(newEmitter)).toBe(null); expect(pipe.transform(newEmitter)).toBe(null);
// this should not affect the pipe // this should not affect the pipe
ObservableWrapper.callNext(emitter, message); ObservableWrapper.callEmit(emitter, message);
TimerWrapper.setTimeout(() => { TimerWrapper.setTimeout(() => {
expect(pipe.transform(newEmitter)).toBe(null); expect(pipe.transform(newEmitter)).toBe(null);
@ -86,7 +86,7 @@ export function main() {
it("should request a change detection check upon receiving a new value", it("should request a change detection check upon receiving a new value",
inject([AsyncTestCompleter], (async) => { inject([AsyncTestCompleter], (async) => {
pipe.transform(emitter); pipe.transform(emitter);
ObservableWrapper.callNext(emitter, message); ObservableWrapper.callEmit(emitter, message);
TimerWrapper.setTimeout(() => { TimerWrapper.setTimeout(() => {
expect(ref.spy('markForCheck')).toHaveBeenCalled(); expect(ref.spy('markForCheck')).toHaveBeenCalled();
@ -103,7 +103,7 @@ export function main() {
pipe.transform(emitter); pipe.transform(emitter);
pipe.onDestroy(); pipe.onDestroy();
ObservableWrapper.callNext(emitter, message); ObservableWrapper.callEmit(emitter, message);
TimerWrapper.setTimeout(() => { TimerWrapper.setTimeout(() => {
expect(pipe.transform(emitter)).toBe(null); expect(pipe.transform(emitter)).toBe(null);

View File

@ -32,7 +32,7 @@ export function main() {
async.done(); async.done();
}); });
ObservableWrapper.callNext(emitter, 99); ObservableWrapper.callEmit(emitter, 99);
})); }));
it("should call the throw callback", inject([AsyncTestCompleter], (async) => { it("should call the throw callback", inject([AsyncTestCompleter], (async) => {
@ -58,7 +58,7 @@ export function main() {
var called = false; var called = false;
ObservableWrapper.subscribe(emitter, (value) => { called = true; }); ObservableWrapper.subscribe(emitter, (value) => { called = true; });
ObservableWrapper.callNext(emitter, 99); ObservableWrapper.callEmit(emitter, 99);
expect(called).toBe(false); expect(called).toBe(false);
}); });
@ -71,7 +71,7 @@ export function main() {
async.done(); async.done();
}); });
log.push(1); log.push(1);
ObservableWrapper.callNext(e, 2); ObservableWrapper.callEmit(e, 2);
log.push(3); log.push(3);
})); }));
@ -80,7 +80,7 @@ export function main() {
var log = []; var log = [];
ObservableWrapper.subscribe(e, (x) => { log.push(x); }); ObservableWrapper.subscribe(e, (x) => { log.push(x); });
log.push(1); log.push(1);
ObservableWrapper.callNext(e, 2); ObservableWrapper.callEmit(e, 2);
log.push(3); log.push(3);
expect(log).toEqual([1, 2, 3]); expect(log).toEqual([1, 2, 3]);
}); });

View File

@ -2016,7 +2016,7 @@ class DirectiveEmitingEvent {
this.event = new EventEmitter(); this.event = new EventEmitter();
} }
fireEvent(msg: string) { ObservableWrapper.callNext(this.event, msg); } fireEvent(msg: string) { ObservableWrapper.callEmit(this.event, msg); }
} }
@Directive({selector: '[update-host-attributes]', host: {'role': 'button'}}) @Directive({selector: '[update-host-attributes]', host: {'role': 'button'}})
@ -2039,7 +2039,7 @@ class DirectiveUpdatingHostActions {
constructor() { this.setAttr = new EventEmitter(); } constructor() { this.setAttr = new EventEmitter(); }
triggerSetAttr(attrValue) { ObservableWrapper.callNext(this.setAttr, ["key", attrValue]); } triggerSetAttr(attrValue) { ObservableWrapper.callEmit(this.setAttr, ["key", attrValue]); }
} }
@Directive({selector: '[listener]', host: {'(event)': 'onEvent($event)'}}) @Directive({selector: '[listener]', host: {'(event)': 'onEvent($event)'}})
@ -2174,7 +2174,7 @@ class DirectiveWithTwoWayBinding {
controlChange = new EventEmitter(); controlChange = new EventEmitter();
control = null; control = null;
triggerChange(value) { ObservableWrapper.callNext(this.controlChange, value); } triggerChange(value) { ObservableWrapper.callEmit(this.controlChange, value); }
} }
@Injectable() @Injectable()
@ -2382,5 +2382,5 @@ class DirectiveWithPropDecorators {
this.target = target; this.target = target;
} }
fireEvent(msg) { ObservableWrapper.callNext(this.event, msg); } fireEvent(msg) { ObservableWrapper.callEmit(this.event, msg); }
} }

View File

@ -34,9 +34,9 @@ class MockNgZone extends NgZone {
this._onEventDoneStream = new EventEmitter(false); this._onEventDoneStream = new EventEmitter(false);
} }
start(): void { ObservableWrapper.callNext(this._onTurnStartStream, null); } start(): void { ObservableWrapper.callEmit(this._onTurnStartStream, null); }
finish(): void { ObservableWrapper.callNext(this._onEventDoneStream, null); } finish(): void { ObservableWrapper.callEmit(this._onEventDoneStream, null); }
} }
export function main() { export function main() {

View File

@ -683,6 +683,7 @@ var NG_ALL = [
*/ */
'EventEmitter.mapTo():js', 'EventEmitter.mapTo():js',
'EventEmitter.next():js', 'EventEmitter.next():js',
'EventEmitter.emit():js',
'EventEmitter.materialize():js', 'EventEmitter.materialize():js',
'EventEmitter.merge():js', 'EventEmitter.merge():js',
'EventEmitter.mergeAll():js', 'EventEmitter.mergeAll():js',

View File

@ -404,7 +404,7 @@ function logHook(name: string, next: ComponentInstruction, prev: ComponentInstru
var message = name + ': ' + (isPresent(prev) ? ('/' + prev.urlPath) : 'null') + ' -> ' + var message = name + ': ' + (isPresent(prev) ? ('/' + prev.urlPath) : 'null') + ' -> ' +
(isPresent(next) ? ('/' + next.urlPath) : 'null'); (isPresent(next) ? ('/' + next.urlPath) : 'null');
log.push(message); log.push(message);
ObservableWrapper.callNext(eventBus, message); ObservableWrapper.callEmit(eventBus, message);
} }
@Component({selector: 'activate-cmp'}) @Component({selector: 'activate-cmp'})

View File

@ -178,10 +178,10 @@ export function main() {
assertChange('twoWayA', 'initModelA'); assertChange('twoWayA', 'initModelA');
assertChange('twoWayB', 'initModelB'); assertChange('twoWayB', 'initModelB');
this.twoWayAEmitter.next('newA'); this.twoWayAEmitter.emit('newA');
this.twoWayBEmitter.next('newB'); this.twoWayBEmitter.emit('newB');
this.eventA.next('aFired'); this.eventA.emit('aFired');
this.eventB.next('bFired'); this.eventB.emit('bFired');
break; break;
case 1: case 1:
assertChange('twoWayA', 'newA'); assertChange('twoWayA', 'newA');

View File

@ -37,7 +37,7 @@ export function main() {
async.done(); async.done();
}); });
var toEmitter = bus.to(CHANNEL); var toEmitter = bus.to(CHANNEL);
ObservableWrapper.callNext(toEmitter, MESSAGE); ObservableWrapper.callEmit(toEmitter, MESSAGE);
})); }));
it("should broadcast", inject([AsyncTestCompleter], (async) => { it("should broadcast", inject([AsyncTestCompleter], (async) => {
@ -61,7 +61,7 @@ export function main() {
} }
var toEmitter = bus.to(CHANNEL); var toEmitter = bus.to(CHANNEL);
ObservableWrapper.callNext(toEmitter, MESSAGE); ObservableWrapper.callEmit(toEmitter, MESSAGE);
})); }));
it("should keep channels independent", inject([AsyncTestCompleter], (async) => { it("should keep channels independent", inject([AsyncTestCompleter], (async) => {
@ -91,10 +91,10 @@ export function main() {
}); });
var firstToEmitter = bus.to(CHANNEL_ONE); var firstToEmitter = bus.to(CHANNEL_ONE);
ObservableWrapper.callNext(firstToEmitter, MESSAGE_ONE); ObservableWrapper.callEmit(firstToEmitter, MESSAGE_ONE);
var secondToEmitter = bus.to(CHANNEL_TWO); var secondToEmitter = bus.to(CHANNEL_TWO);
ObservableWrapper.callNext(secondToEmitter, MESSAGE_TWO); ObservableWrapper.callEmit(secondToEmitter, MESSAGE_TWO);
})); }));
}); });
@ -121,7 +121,7 @@ export function main() {
var wasCalled = false; var wasCalled = false;
ObservableWrapper.subscribe(bus.from(CHANNEL), (message) => { wasCalled = true; }); ObservableWrapper.subscribe(bus.from(CHANNEL), (message) => { wasCalled = true; });
ObservableWrapper.callNext(bus.to(CHANNEL), "hi"); ObservableWrapper.callEmit(bus.to(CHANNEL), "hi");
flushMessages(() => { flushMessages(() => {
@ -141,7 +141,7 @@ export function main() {
var wasCalled = false; var wasCalled = false;
ObservableWrapper.subscribe(bus.from(CHANNEL), (message) => { wasCalled = true; }); ObservableWrapper.subscribe(bus.from(CHANNEL), (message) => { wasCalled = true; });
ObservableWrapper.callNext(bus.to(CHANNEL), "hi"); ObservableWrapper.callEmit(bus.to(CHANNEL), "hi");
flushMessages(() => { flushMessages(() => {
expect(wasCalled).toBeTruthy(); expect(wasCalled).toBeTruthy();

View File

@ -10,7 +10,7 @@ export class MockEventEmitter<T> extends EventEmitter<T> {
return new MockDisposable(); return new MockDisposable();
} }
next(value: any) { this._nextFns.forEach(fn => fn(value)); } emit(value: any) { this._nextFns.forEach(fn => fn(value)); }
} }
class MockDisposable { class MockDisposable {

View File

@ -53,7 +53,7 @@ export function main() {
expect(arg1).toEqual(PASSED_ARG_1); expect(arg1).toEqual(PASSED_ARG_1);
expect(arg2).toEqual(PASSED_ARG_2); expect(arg2).toEqual(PASSED_ARG_2);
}); });
ObservableWrapper.callNext(messageBuses.worker.to(CHANNEL), ObservableWrapper.callEmit(messageBuses.worker.to(CHANNEL),
{'method': TEST_METHOD, 'args': [PASSED_ARG_1, PASSED_ARG_2]}); {'method': TEST_METHOD, 'args': [PASSED_ARG_1, PASSED_ARG_2]});
})); }));
@ -63,7 +63,7 @@ export function main() {
expect(arg1).toEqual(PASSED_ARG_1); expect(arg1).toEqual(PASSED_ARG_1);
return PromiseWrapper.wrap(() => { return RESULT; }); return PromiseWrapper.wrap(() => { return RESULT; });
}); });
ObservableWrapper.callNext(messageBuses.worker.to(CHANNEL), ObservableWrapper.callEmit(messageBuses.worker.to(CHANNEL),
{'method': TEST_METHOD, 'id': ID, 'args': [PASSED_ARG_1]}); {'method': TEST_METHOD, 'id': ID, 'args': [PASSED_ARG_1]});
ObservableWrapper.subscribe(messageBuses.worker.from(CHANNEL), (data: any) => { ObservableWrapper.subscribe(messageBuses.worker.from(CHANNEL), (data: any) => {
expect(data.type).toEqual("result"); expect(data.type).toEqual("result");

View File

@ -52,7 +52,7 @@ export function main() {
serializer.deserialize(serializer.serialize(viewRef, RenderViewRef), RenderViewRef); serializer.deserialize(serializer.serialize(viewRef, RenderViewRef), RenderViewRef);
webWorkerEventDispatcher.registerEventDispatcher(viewRef, eventDispatcher); webWorkerEventDispatcher.registerEventDispatcher(viewRef, eventDispatcher);
ObservableWrapper.callNext(messageBuses.ui.to(EVENT_CHANNEL), { ObservableWrapper.callEmit(messageBuses.ui.to(EVENT_CHANNEL), {
'viewRef': viewRef.serialize(), 'viewRef': viewRef.serialize(),
'elementIndex': elementIndex, 'elementIndex': elementIndex,
'eventName': eventName, 'eventName': eventName,

View File

@ -85,10 +85,10 @@ export class MdInput {
updateValue(event) { updateValue(event) {
this.value = event.target.value; this.value = event.target.value;
ObservableWrapper.callNext(this.mdChange, this.value); ObservableWrapper.callEmit(this.mdChange, this.value);
} }
setHasFocus(hasFocus: boolean) { setHasFocus(hasFocus: boolean) {
ObservableWrapper.callNext(this.mdFocusChange, hasFocus); ObservableWrapper.callEmit(this.mdFocusChange, hasFocus);
} }
} }

View File

@ -125,7 +125,7 @@ export class MdRadioGroup implements OnChanges {
this.value = value; this.value = value;
this.selectedRadioId = id; this.selectedRadioId = id;
this.activedescendant = id; this.activedescendant = id;
ObservableWrapper.callNext(this.change, null); ObservableWrapper.callEmit(this.change, null);
} }
/** Registers a child radio button with this group. */ /** Registers a child radio button with this group. */
@ -179,7 +179,7 @@ export class MdRadioGroup implements OnChanges {
this.radioDispatcher.notify(this.name_); this.radioDispatcher.notify(this.name_);
radio.checked = true; radio.checked = true;
ObservableWrapper.callNext(this.change, null); ObservableWrapper.callEmit(this.change, null);
this.value = radio.value; this.value = radio.value;
this.selectedRadioId = radio.id; this.selectedRadioId = radio.id;

View File

@ -147,7 +147,7 @@ class OrderItemComponent {
@Input() item: OrderItem; @Input() item: OrderItem;
@Output() delete = new EventEmitter(); @Output() delete = new EventEmitter();
onDelete(): void { this.delete.next(this.item); } onDelete(): void { this.delete.emit(this.item); }
} }
@Component({ @Component({

View File

@ -54,7 +54,7 @@ class Pane {
<table cellpadding="3"> <table cellpadding="3">
<tr> <tr>
<td><ng-content></ng-content></td> <td><ng-content></ng-content></td>
<td><user [handle]="user" (reset)="reset.next()"></user></td> <td><user [handle]="user" (reset)="reset.emit()"></user></td>
</tr> </tr>
</table> </table>
</pane> </pane>

View File

@ -11,9 +11,9 @@ export class Zippy {
toggle() { toggle() {
this.visible = !this.visible; this.visible = !this.visible;
if (this.visible) { if (this.visible) {
ObservableWrapper.callNext(this.open, null); ObservableWrapper.callEmit(this.open, null);
} else { } else {
ObservableWrapper.callNext(this.close, null); ObservableWrapper.callEmit(this.close, null);
} }
} }
} }