Skip to content
This repository was archived by the owner on Apr 20, 2018. It is now read-only.

Commit 3652801

Browse files
Fixing fromPromise swallowing errors
1 parent 2dfe8b1 commit 3652801

26 files changed

Lines changed: 249 additions & 114 deletions

dist/rx.all.compat.js

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2765,20 +2765,34 @@ var ObserveOnObservable = (function (__super__) {
27652765

27662766
var FromPromiseObservable = (function(__super__) {
27672767
inherits(FromPromiseObservable, __super__);
2768-
function FromPromiseObservable(p) {
2769-
this.p = p;
2768+
function FromPromiseObservable(p, s) {
2769+
this._p = p;
2770+
this._s = s;
27702771
__super__.call(this);
27712772
}
27722773

2774+
function scheduleNext(s, state) {
2775+
var o = state[0], data = state[1];
2776+
o.onNext(data);
2777+
o.onCompleted();
2778+
}
2779+
2780+
function scheduleError(s, state) {
2781+
var o = state[0], err = state[1];
2782+
o.onError(err);
2783+
}
2784+
27732785
FromPromiseObservable.prototype.subscribeCore = function(o) {
2774-
this.p
2786+
var sad = new SingleAssignmentDisposable(), self = this;
2787+
2788+
this._p
27752789
.then(function (data) {
2776-
o.onNext(data);
2777-
o.onCompleted();
2790+
sad.setDisposable(self._s.schedule([o, data], scheduleNext));
27782791
}, function (err) {
2779-
o.onError(err);
2792+
sad.setDisposable(self._s.schedule([o, err], scheduleError));
27802793
});
2781-
return disposableEmpty;
2794+
2795+
return sad;
27822796
};
27832797

27842798
return FromPromiseObservable;
@@ -2789,8 +2803,9 @@ var ObserveOnObservable = (function (__super__) {
27892803
* @param {Promise} An ES6 Compliant promise.
27902804
* @returns {Observable} An Observable sequence which wraps the existing promise success and failure.
27912805
*/
2792-
var observableFromPromise = Observable.fromPromise = function (promise) {
2793-
return new FromPromiseObservable(promise);
2806+
var observableFromPromise = Observable.fromPromise = function (promise, scheduler) {
2807+
scheduler || (scheduler = defaultScheduler);
2808+
return new FromPromiseObservable(promise, scheduler);
27942809
};
27952810

27962811
/*

dist/rx.all.compat.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/rx.all.compat.min.js

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/rx.all.js

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2397,20 +2397,34 @@ var ObserveOnObservable = (function (__super__) {
23972397

23982398
var FromPromiseObservable = (function(__super__) {
23992399
inherits(FromPromiseObservable, __super__);
2400-
function FromPromiseObservable(p) {
2401-
this.p = p;
2400+
function FromPromiseObservable(p, s) {
2401+
this._p = p;
2402+
this._s = s;
24022403
__super__.call(this);
24032404
}
24042405

2406+
function scheduleNext(s, state) {
2407+
var o = state[0], data = state[1];
2408+
o.onNext(data);
2409+
o.onCompleted();
2410+
}
2411+
2412+
function scheduleError(s, state) {
2413+
var o = state[0], err = state[1];
2414+
o.onError(err);
2415+
}
2416+
24052417
FromPromiseObservable.prototype.subscribeCore = function(o) {
2406-
this.p
2418+
var sad = new SingleAssignmentDisposable(), self = this;
2419+
2420+
this._p
24072421
.then(function (data) {
2408-
o.onNext(data);
2409-
o.onCompleted();
2422+
sad.setDisposable(self._s.schedule([o, data], scheduleNext));
24102423
}, function (err) {
2411-
o.onError(err);
2424+
sad.setDisposable(self._s.schedule([o, err], scheduleError));
24122425
});
2413-
return disposableEmpty;
2426+
2427+
return sad;
24142428
};
24152429

24162430
return FromPromiseObservable;
@@ -2421,8 +2435,9 @@ var ObserveOnObservable = (function (__super__) {
24212435
* @param {Promise} An ES6 Compliant promise.
24222436
* @returns {Observable} An Observable sequence which wraps the existing promise success and failure.
24232437
*/
2424-
var observableFromPromise = Observable.fromPromise = function (promise) {
2425-
return new FromPromiseObservable(promise);
2438+
var observableFromPromise = Observable.fromPromise = function (promise, scheduler) {
2439+
scheduler || (scheduler = defaultScheduler);
2440+
return new FromPromiseObservable(promise, scheduler);
24262441
};
24272442

24282443
/*

dist/rx.all.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/rx.all.min.js

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/rx.compat.js

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2765,20 +2765,34 @@ var ObserveOnObservable = (function (__super__) {
27652765

27662766
var FromPromiseObservable = (function(__super__) {
27672767
inherits(FromPromiseObservable, __super__);
2768-
function FromPromiseObservable(p) {
2769-
this.p = p;
2768+
function FromPromiseObservable(p, s) {
2769+
this._p = p;
2770+
this._s = s;
27702771
__super__.call(this);
27712772
}
27722773

2774+
function scheduleNext(s, state) {
2775+
var o = state[0], data = state[1];
2776+
o.onNext(data);
2777+
o.onCompleted();
2778+
}
2779+
2780+
function scheduleError(s, state) {
2781+
var o = state[0], err = state[1];
2782+
o.onError(err);
2783+
}
2784+
27732785
FromPromiseObservable.prototype.subscribeCore = function(o) {
2774-
this.p
2786+
var sad = new SingleAssignmentDisposable(), self = this;
2787+
2788+
this._p
27752789
.then(function (data) {
2776-
o.onNext(data);
2777-
o.onCompleted();
2790+
sad.setDisposable(self._s.schedule([o, data], scheduleNext));
27782791
}, function (err) {
2779-
o.onError(err);
2792+
sad.setDisposable(self._s.schedule([o, err], scheduleError));
27802793
});
2781-
return disposableEmpty;
2794+
2795+
return sad;
27822796
};
27832797

27842798
return FromPromiseObservable;
@@ -2789,8 +2803,9 @@ var ObserveOnObservable = (function (__super__) {
27892803
* @param {Promise} An ES6 Compliant promise.
27902804
* @returns {Observable} An Observable sequence which wraps the existing promise success and failure.
27912805
*/
2792-
var observableFromPromise = Observable.fromPromise = function (promise) {
2793-
return new FromPromiseObservable(promise);
2806+
var observableFromPromise = Observable.fromPromise = function (promise, scheduler) {
2807+
scheduler || (scheduler = defaultScheduler);
2808+
return new FromPromiseObservable(promise, scheduler);
27942809
};
27952810

27962811
/*

dist/rx.compat.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/rx.compat.min.js

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/rx.js

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2397,20 +2397,34 @@ var ObserveOnObservable = (function (__super__) {
23972397

23982398
var FromPromiseObservable = (function(__super__) {
23992399
inherits(FromPromiseObservable, __super__);
2400-
function FromPromiseObservable(p) {
2401-
this.p = p;
2400+
function FromPromiseObservable(p, s) {
2401+
this._p = p;
2402+
this._s = s;
24022403
__super__.call(this);
24032404
}
24042405

2406+
function scheduleNext(s, state) {
2407+
var o = state[0], data = state[1];
2408+
o.onNext(data);
2409+
o.onCompleted();
2410+
}
2411+
2412+
function scheduleError(s, state) {
2413+
var o = state[0], err = state[1];
2414+
o.onError(err);
2415+
}
2416+
24052417
FromPromiseObservable.prototype.subscribeCore = function(o) {
2406-
this.p
2418+
var sad = new SingleAssignmentDisposable(), self = this;
2419+
2420+
this._p
24072421
.then(function (data) {
2408-
o.onNext(data);
2409-
o.onCompleted();
2422+
sad.setDisposable(self._s.schedule([o, data], scheduleNext));
24102423
}, function (err) {
2411-
o.onError(err);
2424+
sad.setDisposable(self._s.schedule([o, err], scheduleError));
24122425
});
2413-
return disposableEmpty;
2426+
2427+
return sad;
24142428
};
24152429

24162430
return FromPromiseObservable;
@@ -2421,8 +2435,9 @@ var ObserveOnObservable = (function (__super__) {
24212435
* @param {Promise} An ES6 Compliant promise.
24222436
* @returns {Observable} An Observable sequence which wraps the existing promise success and failure.
24232437
*/
2424-
var observableFromPromise = Observable.fromPromise = function (promise) {
2425-
return new FromPromiseObservable(promise);
2438+
var observableFromPromise = Observable.fromPromise = function (promise, scheduler) {
2439+
scheduler || (scheduler = defaultScheduler);
2440+
return new FromPromiseObservable(promise, scheduler);
24262441
};
24272442

24282443
/*

0 commit comments

Comments
 (0)