JSFiddle - React, Tailwind, and code Playground
by aliaksej
HTML
<button onclick="unsubscribe()">Unsubscribe</button>
JavaScript
function subscribeToPromise(promise, callback) {
var isUnsubscribed = false;
var handler = function (result, error) {
if (!isUnsubscribed) {
callback(result, error);
}
}
promise.then(function (result) {
handler(result);
});
promise.catch(function (error) {
handler(null, error);
});
return function unsubscribe() {
isUnsubscribed = true;
}
}
var promise = new Promise(function (resolve, reject) {
setTimeout(function () {
reject(123);
}, 5000);
});
unsubscribe = subscribeToPromise(promise, function (result, error) {
console.log(result, error, 'from subscription');
});