X Tutup
Skip to content

Commit d59c20c

Browse files
committed
fix(web worker): remove usages of deprecated zone API
Closes #5425
1 parent 019cb41 commit d59c20c

File tree

3 files changed

+21
-15
lines changed

3 files changed

+21
-15
lines changed
Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,20 @@
11
import {NgZone} from 'angular2/src/core/zone/ng_zone';
2+
import {EventEmitter, ObservableWrapper} from 'angular2/src/facade/async';
23

34
export 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
}

modules/angular2/src/web_workers/shared/generic_message_bus.dart

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff 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]) {

modules/angular2/src/web_workers/shared/post_message_bus.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import {
44
MessageBusSink
55
} from "angular2/src/web_workers/shared/message_bus";
66
import {BaseException, WrappedException} from 'angular2/src/facade/exceptions';
7-
import {EventEmitter} from 'angular2/src/facade/async';
7+
import {EventEmitter, ObservableWrapper} from 'angular2/src/facade/async';
88
import {StringMapWrapper} from 'angular2/src/facade/collection';
99
import {Injectable} from "angular2/src/core/di";
1010
import {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 {

0 commit comments

Comments
 (0)
X Tutup