make LazyImage promise cancellable (otheriwse errors in the log)

This commit is contained in:
or-else
2021-09-27 15:56:11 -07:00
parent 2e589bef0c
commit a223d910c1
9 changed files with 362 additions and 285 deletions
+19
View File
@@ -181,3 +181,22 @@ export function deliveryMarker(received) {
}
return null;
}
// Wraps a promise to make it cancelable.
export function cancelablePromise(promise) {
let hasCanceled = false;
const wrappedPromise = new Promise((resolve, reject) => {
promise.then(
result => hasCanceled ? reject({isCanceled: true}) : resolve(result),
error => hasCanceled ? reject({isCanceled: true}) : reject(error)
);
});
return {
promise: wrappedPromise,
cancel( ) {
hasCanceled = true;
},
};
};