fix(WebWorker): Don't send messages when the buffer is empty

Closes #4138
This commit is contained in:
Jason Teplitz
2015-09-11 10:31:14 -07:00
committed by Misko Hevery
parent 1de2d29f96
commit 8485ef9230
6 changed files with 10 additions and 12 deletions
@@ -46,8 +46,10 @@ abstract class GenericMessageBusSink implements MessageBusSink {
void attachToZone(NgZone zone) {
_zone = zone;
_zone.overrideOnEventDone(() {
sendMessages(_messageBuffer);
_messageBuffer.clear();
if (_messageBuffer.length > 0) {
sendMessages(_messageBuffer);
_messageBuffer.clear();
}
}, false);
}
@@ -73,9 +73,10 @@ export class PostMessageBusSink implements MessageBusSink {
}
private _handleOnEventDone() {
// TODO: Send all buffered messages in one postMessage call
this._sendMessages(this._messageBuffer);
this._messageBuffer = [];
if (this._messageBuffer.length > 0) {
this._sendMessages(this._messageBuffer);
this._messageBuffer = [];
}
}
private _sendMessages(messages: Array<Object>) { this._postMessageTarget.postMessage(messages); }