About
Diese Spielwiese kriegt in der (nahen Zukunft)!? ein Titel
und ein Untertitel
und vielleicht sogar auch ein Unteruntertitel verpasst
im unteren Codesnippets handelt es sich um…
const delay = 2000;
//unlesbare Schachtelung
setTimeout(() => {
console.log('Level 1 reached...');
setTimeout(() => {
console.log('Level 2 reached...');
setTimeout(() => {
console.log('Level 3 reached...');
}, delay);
}, delay);
}, delay);
lev1(lev2);
function lev1(callback){
setTimeout(() => {
console.log('Level 1 reached from func lev1');
callback(lev3);
}, delay);
}
function lev2(callback){
setTimeout(() => {
console.log('Level 2 reached from func lev2');
callback();
}, delay);
}
function lev3(){
setTimeout(() => {
console.log('Level 3 reached from func lev3');
}, delay);
}eine bessere alternative mit promise…
const delay = 1000;
const offset = 10;
function f(param1, param2) {
// resolve function 'resf' randomly simulating success
setTimeout(resf, Math.floor(Math.random() * offset ) + delay - offset/2);
// reject function 'rejf' randomly simulating issue occured
setTimeout(rejf, delay);
function resf() {
param1({
id:0,
name:'hatim',
accounts: {
github:true,
bitbucket:false,
gitlab:true
},
ps: [
'js',
'ts',
'py'
]
});
}
function rejf() {
param2(new Error('to be fixed...'));
}
}
(function() {
setInterval(() => {
let p1 = new Promise(f);
p1
.then((ret) => {
console.log('connection to DB established...');
console.log('Promise resolved with', ret);
})
.catch((err) => {
console.log('connection to DB failed...');
console.log('Error', err);
});
setTimeout(() => {
console.clear();
}, 4000); //Time to update... could be outsourced in a const
}, 4000);
})();