coderef

Asynchronously iterable streamsBaseline · Newly available

Asynchronous iteration of a stream allows you to use for await … of loops to iterate through a stream's incoming data.

Works in the latest version of every major browser, but older devices may not support it yet. Baseline since Sep 14, 2026.

Browser support

DesktopChrome
1–123Not supported
124+Supportedsince Apr 16, 2024
Current: 155
Edge
12–123Not supported
124+Supportedsince Apr 18, 2024
Current: 154
Firefox
1–109Not supported
110+Supportedsince Feb 14, 2023
Current: 157
Safari
1–26.6Not supported
27+Supportedsince Sep 14, 2026
Current: 27
MobileChrome Android
18–123Not supported
124+Supportedsince Apr 16, 2024
Current: 155
Firefox Android
4–109Not supported
110+Supportedsince Feb 14, 2023
Current: 157
Safari iOS
1–26.6Not supported
27+Supportedsince Sep 14, 2026
Current: 27

How to use

Every current browser supports this, but it only became Baseline on Sep 14, 2026. Use it as a progressive enhancement, or keep a fallback if you support older devices.

Example

Full syntax and examples are on MDN: asyncIterator.

Feature detection

JS · check before using
if ("ReadableStream" in globalThis && "@@asyncIterator" in ReadableStream.prototype) {
  // ReadableStream.@@asyncIterator is available
}

Sub-features

Support for each part of the feature (2). The overall table above shows when the whole feature works.

Sub-featureChromeEdgeFirefoxSafariChrome AndroidFirefox AndroidSafari iOS
ReadableStream.@@asyncIterator1241241102712411027
ReadableStream.values1241241102712411027