JSFiddle - React, Tailwind, and code Playground
by joplomacedo
JavaScript
const in_process = {};
function Process ( process_id, f ) {
if ( process_id in in_process ) {
return Promise.reject('already_in_proccess');
}
in_process[process_id] = 1;
return f().finally( () => {
delete in_process[process_id]
console.log(process_id);
});
}
Process('theprocess', () => {
return new Promise( (resolve, reject) => {
setTimeout( () => {
resolve()
}, 3000);
});
})
Process('theprocess', () => {
return new Promise( (resolve, reject) => {
setTimeout( () => {
resolve()
}, 3000);
});
})
setTimeout( () => {
Process('theprocess', () => {
return new Promise( (resolve, reject) => {
setTimeout( () => {
resolve()
}, 3000);
});
})
}, 5000)