Fix ThenanbleRef promise

This commit is contained in:
Michael Diarmid 2017-09-20 11:50:34 +01:00 committed by GitHub
parent 7f99b035e2
commit d23c048304
1 changed files with 18 additions and 10 deletions

View File

@ -481,30 +481,38 @@ export default class Reference extends ReferenceBase {
* Access then method of promise if set
* @return {*}
*/
get then() {
if (this._promise && this._promise.then) {
return this._promise.then.bind(this._promise)(() => {
then(fnResolve, fnReject) {
if (isFunction(fnResolve) && this._promise && this._promise.then) {
return this._promise.then.bind(this._promise)((result) => {
this._promise = null;
return this;
return fnResolve(result);
}, (possibleErr) => {
this._promise = null;
if (isFunction(fnReject)) {
return fnReject(possibleErr);
}
throw possibleErr;
});
}
return undefined;
return throw new Error("Cannot read property 'then' of undefined.");
}
/**
* Access catch method of promise if set
* @return {*}
*/
get catch() {
if (this._promise && this._promise.catch) {
return this._promise.catch.bind(this._promise)((exception) => {
catch(fnReject) {
if (isFunction(fnReject) && this._promise && this._promise.catch) {
return this._promise.catch.bind(this._promise)((possibleErr) => {
this._promise = null;
return Promise.reject(exception);
return fnReject(possibleErr);
});
}
return undefined;
return throw new Error("Cannot read property 'catch' of undefined.");
}
/**