You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							46 lines
						
					
					
						
							1.5 KiB
						
					
					
				
			
		
		
	
	
							46 lines
						
					
					
						
							1.5 KiB
						
					
					
				/** PURE_IMPORTS_START _Observable,_Subscription,_symbol_iterator PURE_IMPORTS_END */ | 
						|
import { Observable } from '../Observable'; | 
						|
import { Subscription } from '../Subscription'; | 
						|
import { iterator as Symbol_iterator } from '../symbol/iterator'; | 
						|
export function scheduleIterable(input, scheduler) { | 
						|
    if (!input) { | 
						|
        throw new Error('Iterable cannot be null'); | 
						|
    } | 
						|
    return new Observable(function (subscriber) { | 
						|
        var sub = new Subscription(); | 
						|
        var iterator; | 
						|
        sub.add(function () { | 
						|
            if (iterator && typeof iterator.return === 'function') { | 
						|
                iterator.return(); | 
						|
            } | 
						|
        }); | 
						|
        sub.add(scheduler.schedule(function () { | 
						|
            iterator = input[Symbol_iterator](); | 
						|
            sub.add(scheduler.schedule(function () { | 
						|
                if (subscriber.closed) { | 
						|
                    return; | 
						|
                } | 
						|
                var value; | 
						|
                var done; | 
						|
                try { | 
						|
                    var result = iterator.next(); | 
						|
                    value = result.value; | 
						|
                    done = result.done; | 
						|
                } | 
						|
                catch (err) { | 
						|
                    subscriber.error(err); | 
						|
                    return; | 
						|
                } | 
						|
                if (done) { | 
						|
                    subscriber.complete(); | 
						|
                } | 
						|
                else { | 
						|
                    subscriber.next(value); | 
						|
                    this.schedule(); | 
						|
                } | 
						|
            })); | 
						|
        })); | 
						|
        return sub; | 
						|
    }); | 
						|
} | 
						|
//# sourceMappingURL=scheduleIterable.js.map
 | 
						|
 |