rxjs-rails 2.3.22 → 2.3.25
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rxjs/rails/version.rb +1 -1
- data/vendor/assets/javascripts/rx.aggregates.js +178 -146
- data/vendor/assets/javascripts/rx.aggregates.min.js +1 -1
- data/vendor/assets/javascripts/rx.all.compat.js +1706 -1156
- data/vendor/assets/javascripts/rx.all.compat.min.js +4 -4
- data/vendor/assets/javascripts/rx.all.js +1529 -1125
- data/vendor/assets/javascripts/rx.all.min.js +4 -3
- data/vendor/assets/javascripts/rx.async.compat.js +15 -79
- data/vendor/assets/javascripts/rx.async.compat.min.js +1 -1
- data/vendor/assets/javascripts/rx.async.js +15 -79
- data/vendor/assets/javascripts/rx.async.min.js +1 -1
- data/vendor/assets/javascripts/rx.backpressure.js +38 -15
- data/vendor/assets/javascripts/rx.backpressure.min.js +1 -1
- data/vendor/assets/javascripts/rx.binding.js +42 -54
- data/vendor/assets/javascripts/rx.binding.min.js +1 -1
- data/vendor/assets/javascripts/rx.coincidence.js +6 -6
- data/vendor/assets/javascripts/rx.coincidence.min.js +1 -1
- data/vendor/assets/javascripts/rx.compat.js +1234 -828
- data/vendor/assets/javascripts/rx.compat.min.js +2 -2
- data/vendor/assets/javascripts/rx.experimental.js +12 -6
- data/vendor/assets/javascripts/rx.experimental.min.js +1 -1
- data/vendor/assets/javascripts/rx.joinpatterns.js +15 -11
- data/vendor/assets/javascripts/rx.joinpatterns.min.js +1 -1
- data/vendor/assets/javascripts/rx.js +1159 -791
- data/vendor/assets/javascripts/rx.lite.compat.js +1264 -920
- data/vendor/assets/javascripts/rx.lite.compat.min.js +2 -2
- data/vendor/assets/javascripts/rx.lite.extras.js +99 -27
- data/vendor/assets/javascripts/rx.lite.extras.min.js +1 -1
- data/vendor/assets/javascripts/rx.lite.js +1192 -886
- data/vendor/assets/javascripts/rx.lite.min.js +2 -2
- data/vendor/assets/javascripts/rx.min.js +2 -2
- data/vendor/assets/javascripts/rx.testing.js +64 -63
- data/vendor/assets/javascripts/rx.testing.min.js +1 -1
- data/vendor/assets/javascripts/rx.time.js +32 -35
- data/vendor/assets/javascripts/rx.time.min.js +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 90154ee9f6e01a69adabc55546cb1e35cf0572c5
|
4
|
+
data.tar.gz: 62a601fb667ebbe045dee17411aa157298e948ce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a837c658258ba780d10c2cd2fed6c3ecfc95df90826907e58fe3dd439df5e048aa8ae5a45fe30c5602cfedb3d4a15b7d4a41bc1b769723536ae7e1e23570fc1c
|
7
|
+
data.tar.gz: a36375a443c32495901f7d456c6e6afde84d040266f7cab76e6abe767c1cd871d4f03d78e0002f99882926f821c69d96d6420d9de1ad51eaf1fa919f00cd7b7c
|
data/lib/rxjs/rails/version.rb
CHANGED
@@ -50,39 +50,21 @@
|
|
50
50
|
isIterable = helpers.isIterable,
|
51
51
|
observableFromPromise = Observable.fromPromise,
|
52
52
|
observableFrom = Observable.from,
|
53
|
-
|
53
|
+
bindCallback = Rx.internals.bindCallback;
|
54
54
|
|
55
55
|
// Defaults
|
56
56
|
var argumentOutOfRange = 'Argument out of range',
|
57
57
|
sequenceContainsNoElements = "Sequence contains no elements.";
|
58
58
|
|
59
|
-
observableProto.finalValue = function () {
|
60
|
-
var source = this;
|
61
|
-
return new AnonymousObservable(function (observer) {
|
62
|
-
var hasValue = false, value;
|
63
|
-
return source.subscribe(function (x) {
|
64
|
-
hasValue = true;
|
65
|
-
value = x;
|
66
|
-
}, observer.onError.bind(observer), function () {
|
67
|
-
if (!hasValue) {
|
68
|
-
observer.onError(new Error(sequenceContainsNoElements));
|
69
|
-
} else {
|
70
|
-
observer.onNext(value);
|
71
|
-
observer.onCompleted();
|
72
|
-
}
|
73
|
-
});
|
74
|
-
}, source);
|
75
|
-
};
|
76
|
-
|
77
59
|
function extremaBy(source, keySelector, comparer) {
|
78
|
-
return new AnonymousObservable(function (
|
60
|
+
return new AnonymousObservable(function (o) {
|
79
61
|
var hasValue = false, lastKey = null, list = [];
|
80
62
|
return source.subscribe(function (x) {
|
81
63
|
var comparison, key;
|
82
64
|
try {
|
83
65
|
key = keySelector(x);
|
84
66
|
} catch (ex) {
|
85
|
-
|
67
|
+
o.onError(ex);
|
86
68
|
return;
|
87
69
|
}
|
88
70
|
comparison = 0;
|
@@ -93,7 +75,7 @@
|
|
93
75
|
try {
|
94
76
|
comparison = comparer(key, lastKey);
|
95
77
|
} catch (ex1) {
|
96
|
-
|
78
|
+
o.onError(ex1);
|
97
79
|
return;
|
98
80
|
}
|
99
81
|
}
|
@@ -102,9 +84,9 @@
|
|
102
84
|
list = [];
|
103
85
|
}
|
104
86
|
if (comparison >= 0) { list.push(x); }
|
105
|
-
},
|
106
|
-
|
107
|
-
|
87
|
+
}, function (e) { o.onError(e); }, function () {
|
88
|
+
o.onNext(list);
|
89
|
+
o.onCompleted();
|
108
90
|
});
|
109
91
|
}, source);
|
110
92
|
}
|
@@ -123,16 +105,41 @@
|
|
123
105
|
* @returns {Observable} An observable sequence containing a single element with the final accumulator value.
|
124
106
|
*/
|
125
107
|
observableProto.aggregate = function () {
|
126
|
-
deprecate('aggregate', 'reduce');
|
127
|
-
var
|
108
|
+
//deprecate('aggregate', 'reduce');
|
109
|
+
var hasSeed = false, accumulator, seed, source = this;
|
128
110
|
if (arguments.length === 2) {
|
129
|
-
seed = arguments[0];
|
130
111
|
hasSeed = true;
|
112
|
+
seed = arguments[0];
|
131
113
|
accumulator = arguments[1];
|
132
114
|
} else {
|
133
115
|
accumulator = arguments[0];
|
134
116
|
}
|
135
|
-
return
|
117
|
+
return new AnonymousObservable(function (o) {
|
118
|
+
var hasAccumulation, accumulation, hasValue;
|
119
|
+
return source.subscribe (
|
120
|
+
function (x) {
|
121
|
+
!hasValue && (hasValue = true);
|
122
|
+
try {
|
123
|
+
if (hasAccumulation) {
|
124
|
+
accumulation = accumulator(accumulation, x);
|
125
|
+
} else {
|
126
|
+
accumulation = hasSeed ? accumulator(seed, x) : x;
|
127
|
+
hasAccumulation = true;
|
128
|
+
}
|
129
|
+
} catch (e) {
|
130
|
+
o.onError(e);
|
131
|
+
return;
|
132
|
+
}
|
133
|
+
},
|
134
|
+
function (e) { o.onError(e); },
|
135
|
+
function () {
|
136
|
+
hasValue && o.onNext(accumulation);
|
137
|
+
!hasValue && hasSeed && o.onNext(seed);
|
138
|
+
!hasValue && !hasSeed && o.onError(new Error(sequenceContainsNoElements));
|
139
|
+
o.onCompleted();
|
140
|
+
}
|
141
|
+
);
|
142
|
+
}, source);
|
136
143
|
};
|
137
144
|
|
138
145
|
/**
|
@@ -143,12 +150,37 @@
|
|
143
150
|
* @returns {Observable} An observable sequence containing a single element with the final accumulator value.
|
144
151
|
*/
|
145
152
|
observableProto.reduce = function (accumulator) {
|
146
|
-
var seed,
|
153
|
+
var hasSeed = false, seed, source = this;
|
147
154
|
if (arguments.length === 2) {
|
148
155
|
hasSeed = true;
|
149
156
|
seed = arguments[1];
|
150
157
|
}
|
151
|
-
return
|
158
|
+
return new AnonymousObservable(function (o) {
|
159
|
+
var hasAccumulation, accumulation, hasValue;
|
160
|
+
return source.subscribe (
|
161
|
+
function (x) {
|
162
|
+
!hasValue && (hasValue = true);
|
163
|
+
try {
|
164
|
+
if (hasAccumulation) {
|
165
|
+
accumulation = accumulator(accumulation, x);
|
166
|
+
} else {
|
167
|
+
accumulation = hasSeed ? accumulator(seed, x) : x;
|
168
|
+
hasAccumulation = true;
|
169
|
+
}
|
170
|
+
} catch (e) {
|
171
|
+
o.onError(e);
|
172
|
+
return;
|
173
|
+
}
|
174
|
+
},
|
175
|
+
function (e) { o.onError(e); },
|
176
|
+
function () {
|
177
|
+
hasValue && o.onNext(accumulation);
|
178
|
+
!hasValue && hasSeed && o.onNext(seed);
|
179
|
+
!hasValue && !hasSeed && o.onError(new Error(sequenceContainsNoElements));
|
180
|
+
o.onCompleted();
|
181
|
+
}
|
182
|
+
);
|
183
|
+
}, source);
|
152
184
|
};
|
153
185
|
|
154
186
|
/**
|
@@ -164,7 +196,7 @@
|
|
164
196
|
return source.subscribe(function () {
|
165
197
|
observer.onNext(true);
|
166
198
|
observer.onCompleted();
|
167
|
-
}, observer.onError
|
199
|
+
}, function (e) { observer.onError(e); }, function () {
|
168
200
|
observer.onNext(false);
|
169
201
|
observer.onCompleted();
|
170
202
|
});
|
@@ -173,7 +205,7 @@
|
|
173
205
|
|
174
206
|
/** @deprecated use #some instead */
|
175
207
|
observableProto.any = function () {
|
176
|
-
deprecate('any', 'some');
|
208
|
+
//deprecate('any', 'some');
|
177
209
|
return this.some.apply(this, arguments);
|
178
210
|
};
|
179
211
|
|
@@ -197,60 +229,65 @@
|
|
197
229
|
|
198
230
|
/** @deprecated use #every instead */
|
199
231
|
observableProto.all = function () {
|
200
|
-
deprecate('all', 'every');
|
232
|
+
//deprecate('all', 'every');
|
201
233
|
return this.every.apply(this, arguments);
|
202
234
|
};
|
203
235
|
|
204
236
|
/**
|
205
|
-
* Determines whether an observable sequence
|
237
|
+
* Determines whether an observable sequence includes a specified element with an optional equality comparer.
|
206
238
|
* @param searchElement The value to locate in the source sequence.
|
207
239
|
* @param {Number} [fromIndex] An equality comparer to compare elements.
|
208
|
-
* @returns {Observable} An observable sequence containing a single element determining whether the source sequence
|
240
|
+
* @returns {Observable} An observable sequence containing a single element determining whether the source sequence includes an element that has the specified value from the given index.
|
209
241
|
*/
|
210
|
-
observableProto.
|
242
|
+
observableProto.includes = function (searchElement, fromIndex) {
|
211
243
|
var source = this;
|
212
244
|
function comparer(a, b) {
|
213
245
|
return (a === 0 && b === 0) || (a === b || (isNaN(a) && isNaN(b)));
|
214
246
|
}
|
215
|
-
return new AnonymousObservable(function (
|
247
|
+
return new AnonymousObservable(function (o) {
|
216
248
|
var i = 0, n = +fromIndex || 0;
|
217
249
|
Math.abs(n) === Infinity && (n = 0);
|
218
250
|
if (n < 0) {
|
219
|
-
|
220
|
-
|
251
|
+
o.onNext(false);
|
252
|
+
o.onCompleted();
|
221
253
|
return disposableEmpty;
|
222
254
|
}
|
223
255
|
return source.subscribe(
|
224
256
|
function (x) {
|
225
257
|
if (i++ >= n && comparer(x, searchElement)) {
|
226
|
-
|
227
|
-
|
258
|
+
o.onNext(true);
|
259
|
+
o.onCompleted();
|
228
260
|
}
|
229
261
|
},
|
230
|
-
|
262
|
+
function (e) { o.onError(e); },
|
231
263
|
function () {
|
232
|
-
|
233
|
-
|
264
|
+
o.onNext(false);
|
265
|
+
o.onCompleted();
|
234
266
|
});
|
235
267
|
}, this);
|
236
268
|
};
|
237
269
|
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
270
|
+
/**
|
271
|
+
* @deprecated use #includes instead.
|
272
|
+
*/
|
273
|
+
observableProto.contains = function (searchElement, fromIndex) {
|
274
|
+
//deprecate('contains', 'includes');
|
275
|
+
observableProto.includes(searchElement, fromIndex);
|
276
|
+
};
|
277
|
+
/**
|
278
|
+
* Returns an observable sequence containing a value that represents how many elements in the specified observable sequence satisfy a condition if provided, else the count of items.
|
279
|
+
* @example
|
280
|
+
* res = source.count();
|
281
|
+
* res = source.count(function (x) { return x > 3; });
|
282
|
+
* @param {Function} [predicate]A function to test each element for a condition.
|
283
|
+
* @param {Any} [thisArg] Object to use as this when executing callback.
|
284
|
+
* @returns {Observable} An observable sequence containing a single element with a number that represents how many elements in the input sequence satisfy the condition in the predicate function if provided, else the count of items in the sequence.
|
285
|
+
*/
|
286
|
+
observableProto.count = function (predicate, thisArg) {
|
287
|
+
return predicate ?
|
288
|
+
this.filter(predicate, thisArg).count() :
|
289
|
+
this.reduce(function (count) { return count + 1; }, 0);
|
290
|
+
};
|
254
291
|
|
255
292
|
/**
|
256
293
|
* Returns the first index at which a given element can be found in the observable sequence, or -1 if it is not present.
|
@@ -260,26 +297,26 @@
|
|
260
297
|
*/
|
261
298
|
observableProto.indexOf = function(searchElement, fromIndex) {
|
262
299
|
var source = this;
|
263
|
-
return new AnonymousObservable(function (
|
300
|
+
return new AnonymousObservable(function (o) {
|
264
301
|
var i = 0, n = +fromIndex || 0;
|
265
302
|
Math.abs(n) === Infinity && (n = 0);
|
266
303
|
if (n < 0) {
|
267
|
-
|
268
|
-
|
304
|
+
o.onNext(-1);
|
305
|
+
o.onCompleted();
|
269
306
|
return disposableEmpty;
|
270
307
|
}
|
271
308
|
return source.subscribe(
|
272
309
|
function (x) {
|
273
310
|
if (i >= n && x === searchElement) {
|
274
|
-
|
275
|
-
|
311
|
+
o.onNext(i);
|
312
|
+
o.onCompleted();
|
276
313
|
}
|
277
314
|
i++;
|
278
315
|
},
|
279
|
-
|
316
|
+
function (e) { o.onError(e); },
|
280
317
|
function () {
|
281
|
-
|
282
|
-
|
318
|
+
o.onNext(-1);
|
319
|
+
o.onCompleted();
|
283
320
|
});
|
284
321
|
}, source);
|
285
322
|
};
|
@@ -293,9 +330,7 @@
|
|
293
330
|
observableProto.sum = function (keySelector, thisArg) {
|
294
331
|
return keySelector && isFunction(keySelector) ?
|
295
332
|
this.map(keySelector, thisArg).sum() :
|
296
|
-
this.reduce(function (prev, curr) {
|
297
|
-
return prev + curr;
|
298
|
-
}, 0);
|
333
|
+
this.reduce(function (prev, curr) { return prev + curr; }, 0);
|
299
334
|
};
|
300
335
|
|
301
336
|
/**
|
@@ -358,16 +393,14 @@
|
|
358
393
|
*/
|
359
394
|
observableProto.average = function (keySelector, thisArg) {
|
360
395
|
return keySelector && isFunction(keySelector) ?
|
361
|
-
this.
|
362
|
-
this.
|
396
|
+
this.map(keySelector, thisArg).average() :
|
397
|
+
this.reduce(function (prev, cur) {
|
363
398
|
return {
|
364
399
|
sum: prev.sum + cur,
|
365
400
|
count: prev.count + 1
|
366
401
|
};
|
367
|
-
}).
|
368
|
-
if (s.count === 0) {
|
369
|
-
throw new Error('The input sequence was empty');
|
370
|
-
}
|
402
|
+
}, {sum: 0, count: 0 }).map(function (s) {
|
403
|
+
if (s.count === 0) { throw new Error(sequenceContainsNoElements); }
|
371
404
|
return s.sum / s.count;
|
372
405
|
});
|
373
406
|
};
|
@@ -387,7 +420,7 @@
|
|
387
420
|
observableProto.sequenceEqual = function (second, comparer) {
|
388
421
|
var first = this;
|
389
422
|
comparer || (comparer = defaultComparer);
|
390
|
-
return new AnonymousObservable(function (
|
423
|
+
return new AnonymousObservable(function (o) {
|
391
424
|
var donel = false, doner = false, ql = [], qr = [];
|
392
425
|
var subscription1 = first.subscribe(function (x) {
|
393
426
|
var equal, v;
|
@@ -396,28 +429,28 @@
|
|
396
429
|
try {
|
397
430
|
equal = comparer(v, x);
|
398
431
|
} catch (e) {
|
399
|
-
|
432
|
+
o.onError(e);
|
400
433
|
return;
|
401
434
|
}
|
402
435
|
if (!equal) {
|
403
|
-
|
404
|
-
|
436
|
+
o.onNext(false);
|
437
|
+
o.onCompleted();
|
405
438
|
}
|
406
439
|
} else if (doner) {
|
407
|
-
|
408
|
-
|
440
|
+
o.onNext(false);
|
441
|
+
o.onCompleted();
|
409
442
|
} else {
|
410
443
|
ql.push(x);
|
411
444
|
}
|
412
|
-
},
|
445
|
+
}, function(e) { o.onError(e); }, function () {
|
413
446
|
donel = true;
|
414
447
|
if (ql.length === 0) {
|
415
448
|
if (qr.length > 0) {
|
416
|
-
|
417
|
-
|
449
|
+
o.onNext(false);
|
450
|
+
o.onCompleted();
|
418
451
|
} else if (doner) {
|
419
|
-
|
420
|
-
|
452
|
+
o.onNext(true);
|
453
|
+
o.onCompleted();
|
421
454
|
}
|
422
455
|
}
|
423
456
|
});
|
@@ -431,28 +464,28 @@
|
|
431
464
|
try {
|
432
465
|
equal = comparer(v, x);
|
433
466
|
} catch (exception) {
|
434
|
-
|
467
|
+
o.onError(exception);
|
435
468
|
return;
|
436
469
|
}
|
437
470
|
if (!equal) {
|
438
|
-
|
439
|
-
|
471
|
+
o.onNext(false);
|
472
|
+
o.onCompleted();
|
440
473
|
}
|
441
474
|
} else if (donel) {
|
442
|
-
|
443
|
-
|
475
|
+
o.onNext(false);
|
476
|
+
o.onCompleted();
|
444
477
|
} else {
|
445
478
|
qr.push(x);
|
446
479
|
}
|
447
|
-
},
|
480
|
+
}, function(e) { o.onError(e); }, function () {
|
448
481
|
doner = true;
|
449
482
|
if (qr.length === 0) {
|
450
483
|
if (ql.length > 0) {
|
451
|
-
|
452
|
-
|
484
|
+
o.onNext(false);
|
485
|
+
o.onCompleted();
|
453
486
|
} else if (donel) {
|
454
|
-
|
455
|
-
|
487
|
+
o.onNext(true);
|
488
|
+
o.onCompleted();
|
456
489
|
}
|
457
490
|
}
|
458
491
|
});
|
@@ -462,19 +495,19 @@
|
|
462
495
|
|
463
496
|
function elementAtOrDefault(source, index, hasDefault, defaultValue) {
|
464
497
|
if (index < 0) { throw new Error(argumentOutOfRange); }
|
465
|
-
return new AnonymousObservable(function (
|
498
|
+
return new AnonymousObservable(function (o) {
|
466
499
|
var i = index;
|
467
500
|
return source.subscribe(function (x) {
|
468
501
|
if (i-- === 0) {
|
469
|
-
|
470
|
-
|
502
|
+
o.onNext(x);
|
503
|
+
o.onCompleted();
|
471
504
|
}
|
472
|
-
},
|
505
|
+
}, function (e) { o.onError(e); }, function () {
|
473
506
|
if (!hasDefault) {
|
474
|
-
|
507
|
+
o.onError(new Error(argumentOutOfRange));
|
475
508
|
} else {
|
476
|
-
|
477
|
-
|
509
|
+
o.onNext(defaultValue);
|
510
|
+
o.onCompleted();
|
478
511
|
}
|
479
512
|
});
|
480
513
|
}, source);
|
@@ -505,21 +538,21 @@
|
|
505
538
|
};
|
506
539
|
|
507
540
|
function singleOrDefaultAsync(source, hasDefault, defaultValue) {
|
508
|
-
return new AnonymousObservable(function (
|
541
|
+
return new AnonymousObservable(function (o) {
|
509
542
|
var value = defaultValue, seenValue = false;
|
510
543
|
return source.subscribe(function (x) {
|
511
544
|
if (seenValue) {
|
512
|
-
|
545
|
+
o.onError(new Error('Sequence contains more than one element'));
|
513
546
|
} else {
|
514
547
|
value = x;
|
515
548
|
seenValue = true;
|
516
549
|
}
|
517
|
-
},
|
550
|
+
}, function (e) { o.onError(e); }, function () {
|
518
551
|
if (!seenValue && !hasDefault) {
|
519
|
-
|
552
|
+
o.onError(new Error(sequenceContainsNoElements));
|
520
553
|
} else {
|
521
|
-
|
522
|
-
|
554
|
+
o.onNext(value);
|
555
|
+
o.onCompleted();
|
523
556
|
}
|
524
557
|
});
|
525
558
|
}, source);
|
@@ -552,21 +585,21 @@
|
|
552
585
|
*/
|
553
586
|
observableProto.singleOrDefault = function (predicate, defaultValue, thisArg) {
|
554
587
|
return predicate && isFunction(predicate) ?
|
555
|
-
this.
|
588
|
+
this.filter(predicate, thisArg).singleOrDefault(null, defaultValue) :
|
556
589
|
singleOrDefaultAsync(this, true, defaultValue);
|
557
590
|
};
|
558
591
|
|
559
592
|
function firstOrDefaultAsync(source, hasDefault, defaultValue) {
|
560
|
-
return new AnonymousObservable(function (
|
593
|
+
return new AnonymousObservable(function (o) {
|
561
594
|
return source.subscribe(function (x) {
|
562
|
-
|
563
|
-
|
564
|
-
},
|
595
|
+
o.onNext(x);
|
596
|
+
o.onCompleted();
|
597
|
+
}, function (e) { o.onError(e); }, function () {
|
565
598
|
if (!hasDefault) {
|
566
|
-
|
599
|
+
o.onError(new Error(sequenceContainsNoElements));
|
567
600
|
} else {
|
568
|
-
|
569
|
-
|
601
|
+
o.onNext(defaultValue);
|
602
|
+
o.onCompleted();
|
570
603
|
}
|
571
604
|
});
|
572
605
|
}, source);
|
@@ -601,17 +634,17 @@
|
|
601
634
|
};
|
602
635
|
|
603
636
|
function lastOrDefaultAsync(source, hasDefault, defaultValue) {
|
604
|
-
return new AnonymousObservable(function (
|
637
|
+
return new AnonymousObservable(function (o) {
|
605
638
|
var value = defaultValue, seenValue = false;
|
606
639
|
return source.subscribe(function (x) {
|
607
640
|
value = x;
|
608
641
|
seenValue = true;
|
609
|
-
},
|
642
|
+
}, function (e) { o.onError(e); }, function () {
|
610
643
|
if (!seenValue && !hasDefault) {
|
611
|
-
|
644
|
+
o.onError(new Error(sequenceContainsNoElements));
|
612
645
|
} else {
|
613
|
-
|
614
|
-
|
646
|
+
o.onNext(value);
|
647
|
+
o.onCompleted();
|
615
648
|
}
|
616
649
|
});
|
617
650
|
}, source);
|
@@ -643,25 +676,26 @@
|
|
643
676
|
};
|
644
677
|
|
645
678
|
function findValue (source, predicate, thisArg, yieldIndex) {
|
646
|
-
|
679
|
+
var callback = bindCallback(predicate, thisArg, 3);
|
680
|
+
return new AnonymousObservable(function (o) {
|
647
681
|
var i = 0;
|
648
682
|
return source.subscribe(function (x) {
|
649
683
|
var shouldRun;
|
650
684
|
try {
|
651
|
-
shouldRun =
|
685
|
+
shouldRun = callback(x, i, source);
|
652
686
|
} catch (e) {
|
653
|
-
|
687
|
+
o.onError(e);
|
654
688
|
return;
|
655
689
|
}
|
656
690
|
if (shouldRun) {
|
657
|
-
|
658
|
-
|
691
|
+
o.onNext(yieldIndex ? i : x);
|
692
|
+
o.onCompleted();
|
659
693
|
} else {
|
660
694
|
i++;
|
661
695
|
}
|
662
|
-
},
|
663
|
-
|
664
|
-
|
696
|
+
}, function (e) { o.onError(e); }, function () {
|
697
|
+
o.onNext(yieldIndex ? -1 : undefined);
|
698
|
+
o.onCompleted();
|
665
699
|
});
|
666
700
|
}, source);
|
667
701
|
}
|
@@ -687,7 +721,6 @@
|
|
687
721
|
return findValue(this, predicate, thisArg, true);
|
688
722
|
};
|
689
723
|
|
690
|
-
|
691
724
|
/**
|
692
725
|
* Converts the observable sequence to a Set if it exists.
|
693
726
|
* @returns {Observable} An observable sequence with a single value of a Set containing the values from the observable sequence.
|
@@ -695,19 +728,18 @@
|
|
695
728
|
observableProto.toSet = function () {
|
696
729
|
if (typeof root.Set === 'undefined') { throw new TypeError(); }
|
697
730
|
var source = this;
|
698
|
-
return new AnonymousObservable(function (
|
731
|
+
return new AnonymousObservable(function (o) {
|
699
732
|
var s = new root.Set();
|
700
733
|
return source.subscribe(
|
701
|
-
s.add
|
702
|
-
|
734
|
+
function (x) { s.add(x); },
|
735
|
+
function (e) { o.onError(e); },
|
703
736
|
function () {
|
704
|
-
|
705
|
-
|
737
|
+
o.onNext(s);
|
738
|
+
o.onCompleted();
|
706
739
|
});
|
707
740
|
}, source);
|
708
741
|
};
|
709
742
|
|
710
|
-
|
711
743
|
/**
|
712
744
|
* Converts the observable sequence to a Map if it exists.
|
713
745
|
* @param {Function} keySelector A function which produces the key for the Map.
|
@@ -717,7 +749,7 @@
|
|
717
749
|
observableProto.toMap = function (keySelector, elementSelector) {
|
718
750
|
if (typeof root.Map === 'undefined') { throw new TypeError(); }
|
719
751
|
var source = this;
|
720
|
-
return new AnonymousObservable(function (
|
752
|
+
return new AnonymousObservable(function (o) {
|
721
753
|
var m = new root.Map();
|
722
754
|
return source.subscribe(
|
723
755
|
function (x) {
|
@@ -725,7 +757,7 @@
|
|
725
757
|
try {
|
726
758
|
key = keySelector(x);
|
727
759
|
} catch (e) {
|
728
|
-
|
760
|
+
o.onError(e);
|
729
761
|
return;
|
730
762
|
}
|
731
763
|
|
@@ -734,17 +766,17 @@
|
|
734
766
|
try {
|
735
767
|
element = elementSelector(x);
|
736
768
|
} catch (e) {
|
737
|
-
|
769
|
+
o.onError(e);
|
738
770
|
return;
|
739
771
|
}
|
740
772
|
}
|
741
773
|
|
742
774
|
m.set(key, element);
|
743
775
|
},
|
744
|
-
|
776
|
+
function (e) { o.onError(e); },
|
745
777
|
function () {
|
746
|
-
|
747
|
-
|
778
|
+
o.onNext(m);
|
779
|
+
o.onCompleted();
|
748
780
|
});
|
749
781
|
}, source);
|
750
782
|
};
|