Files
42_INT_14_transcendence/tests_hugo/js_async/async.js
lenovo 55f77d2259 started edition of chat in node
+ handled cors
+ added css fo chat scroll and newline
2022-11-30 14:25:57 +01:00

134 lines
2.9 KiB
JavaScript

/* * * * * * * * * * * * * * * * * * *
UTILITIES
*/
function resolveAfter2Seconds() {
return new Promise(resolve => {
setTimeout(() => {
resolve(spent_time(ori_date) + 'lente');
}, 2000);
});
}
function resolveAfter1Seconds() {
return new Promise(resolve => {
setTimeout(() => {
resolve(spent_time(ori_date) + 'rapide');
}, 1000);
});
}
function print_time(my_date = new Date) {
let my_time = my_date.getSeconds();
my_time += ":";
my_time += my_date.getMilliseconds();
return '[' + my_time + '] ';
}
function spent_time(ori_date) {
let my_date = new Date();
let my_seconds = my_date.getSeconds() - ori_date.getSeconds();
if (my_seconds < 0 ) my_seconds += 60;
let my_millis = my_date.getMilliseconds() - ori_date.getMilliseconds();
if (my_millis < 0 ) my_millis += 1000;
return '[' + my_seconds + ':' + my_millis + '] ';
}
/* * * * * * * * * * * * * * * * * * *
TESTS
/*
async function asyncCall() {
console.log(spent_time(ori_date) + 'calling');
const lente = await resolveAfter2Seconds();
const rpide = await resolveAfter1Seconds();
console.log(spent_time(ori_date) + lente);
console.log(spent_time(ori_date) + rpide);
}
// "[0:1] calling"
// "[0:4] after"
// "[3:6] [2:4] lente"
// "[3:15] [3:6] rapide"
*/
/*
function asyncCall() {
console.log(spent_time(ori_date) + 'calling');
const lente = resolveAfter2Seconds();
const rpide = resolveAfter1Seconds();
console.log(spent_time(ori_date) + lente);
console.log(spent_time(ori_date) + rpide);
}
// "[0:1] calling"
// "[0:4] [object Promise]"
// "[0:12] [object Promise]"
// "[0:19] after"
*/
/*
function asyncCall() {
console.log(spent_time(ori_date) + 'calling');
resolveAfter2Seconds().then(message => console.log(spent_time(ori_date) + message))
.then(() => resolveAfter1Seconds()).then(message => console.log(spent_time(ori_date) + message));
}
// "[0:1] calling"
// "[0:4] after"
// "[2:4] [2:4] lente"
// "[3:15] [3:15] rapide"
*/
/*
async function asyncCall() {
console.log(spent_time(ori_date) + 'calling');
const lente = await resolveAfter2Seconds();
console.log(spent_time(ori_date) + 'middle');
const rpide = await resolveAfter1Seconds();
console.log(spent_time(ori_date) + lente);
console.log(spent_time(ori_date) + rpide);
}
// "[0:1] calling"
// "[0:2] after"
// "[2:4] middle"
// "[3:7] [2:4] lente"
// "[3:8] [3:6] rapide"
*/
async function asyncCall() {
console.log(spent_time(ori_date) + 'calling');
const lente = resolveAfter2Seconds();
const rpide = resolveAfter1Seconds();
console.log(spent_time(ori_date) + await lente);
console.log(spent_time(ori_date) + await rpide);
}
// "[0:0] calling"
// "[0:3] after"
// "[0:3] [2:4] lente"
// "[2:5] [1:3] rapide"
/* * * * * * * * * * * * * * * * * * *
LAUNCH TEST
*/
let ori_date = new Date();
asyncCall();
console.log(spent_time(ori_date) + "after");