This commit is contained in:
xfarrow 2024-07-04 12:13:47 +02:00
parent 11d149edc9
commit 04e200e406
3 changed files with 42 additions and 35 deletions

View File

@ -10,43 +10,49 @@
A Promise can be in one of these three states: A Promise can be in one of these three states:
- Pending (the operation is being processed) - Pending (the operation is being processed)
- Fullfilled (the operation has completed successfully) - Fullfilled (the operation has completed successfully, resolve has been called)
- Rejected - Rejected (the operation has not completed successfully, reject has been called)
*/ */
const promise = new Promise(function (resolve, reject) { const promise = new Promise(function (resolve, reject) {
setTimeout(() => resolve('done'), 500); setTimeout(() => resolve('done'), 5000);
}); });
/* /*
The first argument of .then is a function that runs when the promise is resolved and receives the result. The first argument of .then is a function that runs when the promise is resolved and receives the result.
The second argument of .then is a function that runs when the promise is rejected and receives the error. The second argument of .then is a function that runs when the promise is rejected and receives the error.
The function passed to "then()" is put in the event loop queue! The function passed to "then()" is put in the event loop queue!
*/ */
promise.then( promise.then(
result => console.log('The operation was successful. It returned ' + result), result => console.log('The operation was successful. It returned ' + result),
error => console.log('The operation was not successful: ' + error) error => console.log('The operation was not successful: ' + error)
); );
/* /*
Or we can pass only one argument if we're interested only in a positive result Or we can pass only one argument if we're interested only in a positive result
*/ */
promise.then( promise.then(
result => console.log('The operation was successful. It returned ' + result) result => console.log('The operation was successful. It returned ' + result)
); );
/* /*
Or we can pass only one argument to the method "catch" if we're interested Or we can pass only one argument to the method "catch" if we're interested
in negative results only. in negative results only.
promise.catch internally just calls promise.then(null, f) promise.catch internally just calls promise.then(null, f)
*/ */
promise.catch( promise.catch(
error => console.log(error) error => console.log(error)
); );
/* /*
finally gets always called finally gets always called
*/ */
promise.finally( promise.finally(
() => console.log('The execution has terminated. Bye') () => console.log('The execution has terminated. Bye')
); );
/*
This line is used to demonstrate that the code within "then, catch, etc."
is in the event loop, as this is the first line getting executed.
*/
console.log("Last line");

View File

@ -1,3 +1,4 @@
JavaScript is single-threaded (but note that NodeJS is not entirely single-threaded, as it internally mantains a thread pool), but it can still take advantage of asynchronous programming. JavaScript is single-threaded (but note that NodeJS is not entirely single-threaded, as it internally mantains a thread
pool), but it can still take advantage of asynchronous programming.
The Event Loop, which is a JavaScript construct that completes a new task while waiting for another The Event Loop, which is a JavaScript construct that completes a new task while waiting for another.