Skip to content

Instantly share code, notes, and snippets.

View nafeu's full-sized avatar
🕶️
In Virtual Reality

Nafeu Nasir nafeu

🕶️
In Virtual Reality
View GitHub Profile
function delay(delayedFunction, time) {
return new Promise((resolve, reject) => {
setTimeout(() => {
try {
resolve(delayedFunction());
} catch (error) {
reject(error.message);
}
}, time);
});
console.log('1 | print immediately');
delay(() => '2 | print after one second', 1000)
.then(result => console.log(result));
console.log('1 | print immediately');
delay(() => {
throw new Error('This is a fake error.');
return '2 | print after one second';
}, 1000)
.then(result => console.log(result))
.catch(error => console.log(error));
console.log('1 | print immediately');
delay(() => '2 | print me after one second', 1000)
.then(result => {
console.log(result);
delay(() => '3 | print me one second after line 2', 1000)
.then(result => {
console.log(result);
/* ...CALLBACK HELL... */
});
});
function delay(delayedFunction, time) {
return new Promise((resolve, reject) => {
setTimeout(() => {
try {
resolve(delayedFunction());
} catch (error) {
reject(error.message);
}
}, time);
});
async function main() {
console.log('1 | print immediately');
console.log(await delay(() => '2 | print after one second', 1000));
}
main();
async function main() {
console.log('1 | print immediately');
console.log(await delay(() => '2 | print after one second', 1000));
console.log(await delay(() => '3 | print one second after line 2', 1000));
console.log(await delay(() => '4 | print one second after line 3', 1000));
console.log(await delay(() => '5 | print one second after line 4', 1000));
}
main();
delay(() => '[RETURN VALUE]', 1000)
.then(result => {
console.log(result); // [RETURN VALUE] in result
});
const result = await delay(() => '[RETURN VALUE]', 1000);
console.log(result); // [RETURN VALUE] in result
delay(() => '[RETURN VALUE 1]', 1000)
.then(result => {
console.log(result); // [RETURN VALUE 1] in result
delay(() => '[RETURN VALUE 2]', 1000)
.then(result => {
console.log(result); // [RETURN VALUE 2] in result
});
});