getReader()
创建一个读取器并将其锁定到流。当流被锁定时,在释放此读取器之前,不能获取其他读取器。
参数
getReader
方法接受一个可选的 options
参数,该参数是一个具有以下属性的对象
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
mode | string | undefined | 指定要创建的读取器类型的属性。目前只支持 undefined 值。 |
返回值
一个 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;
console.log(`received number ${value} from stream`);
}
}
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);
},
});
}