aboutsummaryrefslogtreecommitdiffstats
path: root/node_modules/rxjs/dist/esm/internal/observable/race.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/rxjs/dist/esm/internal/observable/race.js')
-rw-r--r--node_modules/rxjs/dist/esm/internal/observable/race.js25
1 files changed, 25 insertions, 0 deletions
diff --git a/node_modules/rxjs/dist/esm/internal/observable/race.js b/node_modules/rxjs/dist/esm/internal/observable/race.js
new file mode 100644
index 0000000..c45a0ee
--- /dev/null
+++ b/node_modules/rxjs/dist/esm/internal/observable/race.js
@@ -0,0 +1,25 @@
+import { Observable } from '../Observable';
+import { innerFrom } from './innerFrom';
+import { argsOrArgArray } from '../util/argsOrArgArray';
+import { createOperatorSubscriber } from '../operators/OperatorSubscriber';
+export function race(...sources) {
+ sources = argsOrArgArray(sources);
+ return sources.length === 1 ? innerFrom(sources[0]) : new Observable(raceInit(sources));
+}
+export function raceInit(sources) {
+ return (subscriber) => {
+ let subscriptions = [];
+ for (let i = 0; subscriptions && !subscriber.closed && i < sources.length; i++) {
+ subscriptions.push(innerFrom(sources[i]).subscribe(createOperatorSubscriber(subscriber, (value) => {
+ if (subscriptions) {
+ for (let s = 0; s < subscriptions.length; s++) {
+ s !== i && subscriptions[s].unsubscribe();
+ }
+ subscriptions = null;
+ }
+ subscriber.next(value);
+ })));
+ }
+ };
+}
+//# sourceMappingURL=race.js.map \ No newline at end of file
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage