File tree Expand file tree Collapse file tree 3 files changed +21
-15
lines changed
Expand file tree Collapse file tree 3 files changed +21
-15
lines changed Original file line number Diff line number Diff line change 11import { NgZone } from 'angular2/src/core/zone/ng_zone' ;
2+ import { EventEmitter , ObservableWrapper } from 'angular2/src/facade/async' ;
23
34export class MockNgZone extends NgZone {
45 /** @internal */
5- _onEventDone : ( ) => void ;
6+ _mockOnEventDone : EventEmitter < any > ;
67
7- constructor ( ) { super ( { enableLongStackTrace : false } ) ; }
8+ constructor ( ) {
9+ super ( { enableLongStackTrace : false } ) ;
10+ this . _mockOnEventDone = new EventEmitter < any > ( false ) ;
11+ }
12+
13+ get onEventDone ( ) { return this . _mockOnEventDone ; }
814
915 run ( fn : Function ) : any { return fn ( ) ; }
1016
1117 runOutsideAngular ( fn : Function ) : any { return fn ( ) ; }
1218
13- overrideOnEventDone ( fn : ( ) => void , opt_waitForAsync : boolean = false ) : void {
14- this . _onEventDone = fn ;
15- }
16-
17- simulateZoneExit ( ) : void { this . _onEventDone ( ) ; }
19+ simulateZoneExit ( ) : void { ObservableWrapper . callNext ( this . onEventDone , null ) ; }
1820}
Original file line number Diff line number Diff line change @@ -45,12 +45,14 @@ abstract class GenericMessageBusSink implements MessageBusSink {
4545
4646 void attachToZone (NgZone zone) {
4747 _zone = zone;
48- _zone.overrideOnEventDone (() {
49- if (_messageBuffer.length > 0 ) {
50- sendMessages (_messageBuffer);
51- _messageBuffer.clear ();
52- }
53- }, false );
48+ _zone.runOutsideAngular (() {
49+ _zone.onEventDone.listen ((_) {
50+ if (_messageBuffer.length > 0 ) {
51+ sendMessages (_messageBuffer);
52+ _messageBuffer.clear ();
53+ }
54+ });
55+ });
5456 }
5557
5658 void initChannel (String channelName, [bool runInZone = true ]) {
Original file line number Diff line number Diff line change 44 MessageBusSink
55} from "angular2/src/web_workers/shared/message_bus" ;
66import { BaseException , WrappedException } from 'angular2/src/facade/exceptions' ;
7- import { EventEmitter } from 'angular2/src/facade/async' ;
7+ import { EventEmitter , ObservableWrapper } from 'angular2/src/facade/async' ;
88import { StringMapWrapper } from 'angular2/src/facade/collection' ;
99import { Injectable } from "angular2/src/core/di" ;
1010import { NgZone } from 'angular2/src/core/zone/ng_zone' ;
@@ -41,7 +41,9 @@ export class PostMessageBusSink implements MessageBusSink {
4141
4242 attachToZone ( zone : NgZone ) : void {
4343 this . _zone = zone ;
44- this . _zone . overrideOnEventDone ( ( ) => this . _handleOnEventDone ( ) , false ) ;
44+ this . _zone . runOutsideAngular ( ( ) => {
45+ ObservableWrapper . subscribe ( this . _zone . onEventDone , ( _ ) => { this . _handleOnEventDone ( ) ; } ) ;
46+ } ) ;
4547 }
4648
4749 initChannel ( channel : string , runInZone : boolean = true ) : void {
You can’t perform that action at this time.
0 commit comments