rxjs-rails 2.3.22 → 2.3.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
};
|