ReadableStreamDefaultReader.releaseLock()

The releaseLock() method of the ReadableStreamDefaultReader interface releases the reader's lock on the stream.

If the associated stream is errored when the lock is released, the reader will appear errored in that same way subsequently; otherwise, the reader will appear closed.

A readerโ€™s lock cannot be released while it still has a pending read request, i.e., if a promise returned by the readerโ€™s ReadableStreamDefaultReader.read() method has not finished. This will result in a TypeError being thrown.

Syntax

readableStreamDefaultReader.releaseLock();

Parameters

None.

Return value

undefined.

Exceptions

TypeError
The source object is not a ReadableStreamDefaultReader, or a read request is pending.

Examples

function fetchStream() {
  const reader = stream.getReader();

  ...

  reader.releaseLock()

  ...
}

Specifications

Specification Status Comment
Streams
The definition of 'releaseLock()' in that specification.
Living Standard Initial definition.

Browser compatibility

DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
releaseLock
Experimental
Chrome ? Edge ? Firefox Full support 65
Full support 65
Full support 57
Disabled
Disabled From version 57: this feature is behind the dom.streams.enabled preference (needs to be set to true) and the javascript.options.streams preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE ? Opera ? Safari ? WebView Android ? Chrome Android ? Firefox Android Full support 65
Full support 65
Full support 57
Disabled
Disabled From version 57: this feature is behind the dom.streams.enabled preference (needs to be set to true) and the javascript.options.streams preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android ? Safari iOS ? Samsung Internet Android ?

Legend

Full support
Full support
Compatibility unknown
Compatibility unknown
Experimental. Expect behavior to change in the future.
Experimental. Expect behavior to change in the future.
User must explicitly enable this feature.
User must explicitly enable this feature.