MCPcopy Index your code
hub / github.com/angular/angular-cli / handleAsyncIterator

Function handleAsyncIterator

packages/angular_devkit/architect/src/api.ts:280–298  ·  view source on GitHub ↗
(
  subscriber: Subscriber<T>,
  iterator: AsyncIterator<T>,
)

Source from the content-addressed store, hash-verified

278}
279
280async function handleAsyncIterator<T>(
281 subscriber: Subscriber<T>,
282 iterator: AsyncIterator<T>,
283): Promise<void> {
284 const teardown = new Promise<void>((resolve) => subscriber.add(() => resolve()));
285
286 try {
287 while (!subscriber.closed) {
288 const result = await Promise.race([teardown, iterator.next()]);
289 if (!result || result.done) {
290 break;
291 }
292
293 subscriber.next(result.value);
294 }
295 } finally {
296 await iterator.return?.();
297 }
298}
299
300/**
301 * A builder handler function. The function signature passed to `createBuilder()`.

Callers 1

fromAsyncIterableFunction · 0.85

Calls 3

nextMethod · 0.80
resolveFunction · 0.50
addMethod · 0.45

Tested by

no test coverage detected