From 796fc9bc3e8e4da7d53fb4617511ce4e2be22485 Mon Sep 17 00:00:00 2001 From: Andrey Trebler Date: Mon, 4 May 2020 18:27:06 +0200 Subject: BREAKING: make WebSocket directly implement AsyncIterable (#5044) (#5045) --- std/ws/mod.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'std/ws/mod.ts') diff --git a/std/ws/mod.ts b/std/ws/mod.ts index 569936706..cec08888b 100644 --- a/std/ws/mod.ts +++ b/std/ws/mod.ts @@ -67,11 +67,14 @@ export interface WebSocketFrame { payload: Uint8Array; } -export interface WebSocket extends Reader, Writer { +export interface WebSocket + extends Reader, + Writer, + AsyncIterable { readonly conn: Conn; readonly isClosed: boolean; - receive(): AsyncIterableIterator; + [Symbol.asyncIterator](): AsyncIterableIterator; /** * @throws `Deno.errors.ConnectionReset` @@ -228,7 +231,7 @@ class WebSocketImpl implements WebSocket { this.bufWriter = bufWriter || new BufWriter(conn); } - async *receive(): AsyncIterableIterator { + async *[Symbol.asyncIterator](): AsyncIterableIterator { let frames: WebSocketFrame[] = []; let payloadsLength = 0; while (!this._isClosed) { @@ -336,7 +339,7 @@ class WebSocketImpl implements WebSocket { } async read(p: Uint8Array): Promise { - for await (const ev of this.receive()) { + for await (const ev of this) { if (ev instanceof Uint8Array) { return copyBytes(ev, p); } -- cgit v1.2.3