MCPcopy Create free account
hub / github.com/Moddable-OpenSource/moddable / next

Function next

examples/io/streams/modules/streams.js:355–395  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

353});
354Object.assign(ReadableStreamAsyncIteratorPrototype, {
355 next() {
356 const internal = ReadableStreamAsyncIteratorBrand.get(this);
357 const reader = internal.reader;
358 const nextSteps = () => {
359 if (internal.isFinished)
360 return Promise.resolve({ value:undefined, done:true });
361 assert(reader.stream !== undefined);
362 const promiseRecord = createPromise();
363 const readRequest = {
364 chunkSteps: chunk => resolvePromise(promiseRecord, chunk),
365 closeSteps: () => {
366 ReadableStreamDefaultReaderRelease(reader);
367 resolvePromise(promiseRecord, ReadableStreamAsyncIteratorBrand.token);
368 },
369 errorSteps: e => {
370 ReadableStreamDefaultReaderRelease(reader);
371 rejectPromise(promiseRecord, e);
372 }
373 };
374 ReadableStreamDefaultReaderRead(reader, readRequest);
375 return promiseRecord.promise.then(
376 value => {
377 internal.ongoingPromise = null;
378 if (value === ReadableStreamAsyncIteratorBrand.token) {
379 internal.isFinished = true;
380 return { value: undefined, done: true };
381 }
382 return { value, done: false };
383 },
384 reason => {
385 internal.ongoingPromise = null;
386 internal.isFinished = true;
387 throw reason;
388 }
389 );
390 };
391 internal.ongoingPromise = internal.ongoingPromise
392 ? internal.ongoingPromise.then(nextSteps, nextSteps)
393 : nextSteps();
394 return internal.ongoingPromise;
395 },
396 return(value) {
397 const internal = ReadableStreamAsyncIteratorBrand.get(this);
398 const reader = internal.reader;

Callers 1

pipeLoopFunction · 0.70

Calls 3

nextStepsFunction · 0.85
pipeStepFunction · 0.85
getMethod · 0.65

Tested by

no test coverage detected