diff --git a/_posts/2015-12-16-ismounted-antipattern.md b/_posts/2015-12-16-ismounted-antipattern.md index b258e92e2..6390baa04 100644 --- a/_posts/2015-12-16-ismounted-antipattern.md +++ b/_posts/2015-12-16-ismounted-antipattern.md @@ -60,14 +60,17 @@ Where `makeCancelable` is [defined by @istarkov](https://github.com/facebook/rea const makeCancelable = (promise) => { let hasCanceled_ = false; + const wrappedPromise = new Promise((resolve, reject) => { + promise.then((val) => + hasCanceled_ ? reject({isCanceled: true}) : resolve(val) + ); + promise.catch((error) => + hasCanceled_ ? reject({isCanceled: true}) : reject(error) + ); + }); + return { - promise: new Promise( - (resolve, reject) => promise - .then(r => hasCanceled_ - ? reject({isCanceled: true}) - : resolve(r) - ) - ), + promise: wrappedPromise, cancel() { hasCanceled_ = true; },