JSFiddle - React, Tailwind, and code Playground
HTML
<a href="#">Click Me</a>
JavaScript
function wait_promise(time, param){
return new Promise(function(resolve, reject){
setTimeout(function(param){
resolve(param);
}, time, param)
});
}
function click_promise(el, param){
return new Promise(function(resolve, reject){
el.addEventListener("click", function(e){
el.removeEventListener(e.type, arguments.callee)
resolve(param);
})
})
}
function handle(el, h){
click_promise(el)
.then(function(){
return Promise.race([
wait_promise(700, 1),
click_promise(el, 2)
])
}).then(function(n){
h(n)
handle(el, h)
})
}
var el=document.querySelector("a")
handle(el, alert)