Updated code fragment for correctness.
jim committed
Feb 29, 2016 at 17:52 UTC
aec8a9b4fe2ece881f9b2b17b28e1658c7e0cae9
1 file changed
+10
-7
docs/_posts/2015-12-16-ismounted-antipattern.md
+10
-7
@@ -60,14 +60,17 @@ Where `makeCancelable` is [defined by @istarkov](https://github.com/facebook/rea
60
const makeCancelable = (promise) => {
61
let hasCanceled_ = false;
62
63
+ const wrappedPromise = new Promise((resolve, reject) => {
64
+ promise.then((val) =>
65
+ hasCanceled_ ? reject({isCanceled: true}) : resolve(val)
66
+ );
67
+ promise.catch((error) =>
68
+ hasCanceled_ ? reject({isCanceled: true}) : reject(error)
69
+ );
70
+ });
71
+
72
return {
64
- promise: new Promise(
65
- (resolve, reject) => promise
66
- .then(r => hasCanceled_
67
- ? reject({isCanceled: true})
68
- : resolve(r)
69
- )
70
- ),
73
+ promise: wrappedPromise,
74
cancel() {
75
hasCanceled_ = true;
76
},