UNPKG

sinch-rtc

Version:

RTC JavaScript/Web SDK

33 lines 1.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CancellationTokenSource = exports.CancellationError = void 0; class CancellationError extends Error { constructor() { super(...arguments); this.name = "CancellationError"; this.message = "The operation was cancelled"; } } exports.CancellationError = CancellationError; class CancellationTokenSource { constructor() { this.subscribers = new Array(); } subscribe(subscriber) { if (this.cancellation) { subscriber(this.cancellation); } else { this.subscribers.push(subscriber); } return () => { this.subscribers = this.subscribers.filter((s) => s !== subscriber); }; } cancel(err = new CancellationError()) { this.cancellation = err; this.subscribers.splice(0).forEach((subscriber) => subscriber(err)); } } exports.CancellationTokenSource = CancellationTokenSource; //# sourceMappingURL=CancellationToken.js.map