"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.scheduleIterable = void 0; var Observable_1 = require("../Observable"); var iterator_1 = require("../symbol/iterator"); var isFunction_1 = require("../util/isFunction"); var executeSchedule_1 = require("../util/executeSchedule"); function scheduleIterable(input, scheduler) { return new Observable_1.Observable(function (subscriber) { var iterator; executeSchedule_1.executeSchedule(subscriber, scheduler, function () { iterator = input[iterator_1.iterator](); executeSchedule_1.executeSchedule(subscriber, scheduler, function () { var _a; var value; var done; try { (_a = iterator.next(), value = _a.value, done = _a.done); } catch (err) { subscriber.error(err); return; } if (done) { subscriber.complete(); } else { subscriber.next(value); } }, 0, true); }); return function () { return isFunction_1.isFunction(iterator === null || iterator === void 0 ? void 0 : iterator.return) && iterator.return(); }; }); } exports.scheduleIterable = scheduleIterable; //# sourceMappingURL=scheduleIterable.js.map