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

Function nextSteps

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

Source from the content-addressed store, hash-verified

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();

Callers 1

nextFunction · 0.85

Calls 7

createPromiseFunction · 0.85
resolvePromiseFunction · 0.85
rejectPromiseFunction · 0.85
assertFunction · 0.70
resolveMethod · 0.45

Tested by

no test coverage detected