123456789101112131415161718192021222324252627282930313233343536 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.retryWhen = void 0;
- var innerFrom_1 = require("../observable/innerFrom");
- var Subject_1 = require("../Subject");
- var lift_1 = require("../util/lift");
- var OperatorSubscriber_1 = require("./OperatorSubscriber");
- function retryWhen(notifier) {
- return lift_1.operate(function (source, subscriber) {
- var innerSub;
- var syncResub = false;
- var errors$;
- var subscribeForRetryWhen = function () {
- innerSub = source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, undefined, undefined, function (err) {
- if (!errors$) {
- errors$ = new Subject_1.Subject();
- innerFrom_1.innerFrom(notifier(errors$)).subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function () {
- return innerSub ? subscribeForRetryWhen() : (syncResub = true);
- }));
- }
- if (errors$) {
- errors$.next(err);
- }
- }));
- if (syncResub) {
- innerSub.unsubscribe();
- innerSub = null;
- syncResub = false;
- subscribeForRetryWhen();
- }
- };
- subscribeForRetryWhen();
- });
- }
- exports.retryWhen = retryWhen;
- //# sourceMappingURL=retryWhen.js.map
|