releaseLock()
ReadableStreamDefaultReader
接口的 releaseLock()
方法释放读取器对流的锁定。
如果在释放锁定时关联的流发生错误,则读取器也会发生错误。当您使用完流并希望释放其锁定时,此方法非常有用。
如果在待处理的读取操作仍在进行时释放读取器的锁,则读取器的 ReadableStreamDefaultReader.read()
调用将立即被拒绝,并抛出 TypeError
。
异常
异常 | 描述 |
---|---|
TypeError | 当源对象不是 ReadableStreamDefaultReader 时抛出 |
示例
import { ReadableStream } from 'k6/experimental/streams';
import { setTimeout } from 'k6/timers';
export default async function () {
// Define a number stream that emits numbers from 1 to 10 every second
const stream = numbersStream();
// We use the getReader method to create a reader and lock the stream to it
const reader = stream.getReader();
while (true) {
const { done, value } = await reader.read();
if (done) break;
}
// Release the lock on the stream, so we're free to obtain another reader
// and read from the stream again
reader.releaseLock();
}
function numbersStream() {
let currentNumber = 0;
return new ReadableStream({
start(controller) {
const fn = () => {
if (currentNumber < 10) {
controller.enqueue(++currentNumber);
setTimeout(fn, 1000);
return;
}
controller.close();
};
setTimeout(fn, 1000);
},
});
}