Async Await.
"Later doesn't happen strictly and immediately after now", for this, we have the following solution.
Every function listed for our Integra Framework works like this:
function functionName(){
UC_get(sqlquery,dsn,callback);
}
function callback(){
//code
}
The above has been simplified to the following, using async functions:
async function functionName(){
let resp = await UC_get_async(sqlquery,dsn);
//code
}
Await specifies that the detailed function returns something, and then continues with the block of code, the response delay should not be taken into account to continue the operation.
Example:
/**
* @name GET_MANAGEMENTS
* @desc This function gets the managements of a given client
*/
async function getManagements() {
let response = await UC_get_async("SELECT * FROM CEMEX_Managements WHERE client_id = " + selectedClient.id + " ORDER BY fecha DESC ", '');
return response;
}
/**
* @name MANAGEMENTS_AND_FILL
* @desc This function gets the managements of a given client and
* fills the info in the managements table
*/
async function getAndFillManagement() {
let response = await getManagements();
let managements = JSON.parse(response);
if (managements.length) {
managements = managements.map(management => {
if (management.date) {
management.date = moment(management.date).format('DD/MM/YYYY HH:mm:ss');
}
});
UC_fullTable('managementsTable', JSON.stringify(managements), 'date,agent,campaign,level1,level2,level3,coments', null, '110px', "DD/MM/YYYY HH:mm:ss", 0, "desc");
}
}