import { SchedulerLike } from '../types'; 
 | 
import { Observable } from '../Observable'; 
 | 
import { executeSchedule } from '../util/executeSchedule'; 
 | 
  
 | 
export function scheduleAsyncIterable<T>(input: AsyncIterable<T>, scheduler: SchedulerLike) { 
 | 
  if (!input) { 
 | 
    throw new Error('Iterable cannot be null'); 
 | 
  } 
 | 
  return new Observable<T>((subscriber) => { 
 | 
    executeSchedule(subscriber, scheduler, () => { 
 | 
      const iterator = input[Symbol.asyncIterator](); 
 | 
      executeSchedule( 
 | 
        subscriber, 
 | 
        scheduler, 
 | 
        () => { 
 | 
          iterator.next().then((result) => { 
 | 
            if (result.done) { 
 | 
              // This will remove the subscriptions from 
 | 
              // the parent subscription. 
 | 
              subscriber.complete(); 
 | 
            } else { 
 | 
              subscriber.next(result.value); 
 | 
            } 
 | 
          }); 
 | 
        }, 
 | 
        0, 
 | 
        true 
 | 
      ); 
 | 
    }); 
 | 
  }); 
 | 
} 
 |