diff --git a/backend/tutorials/promise_chaining.js b/backend/tutorials/promise_chaining.js new file mode 100644 index 0000000..97b9268 --- /dev/null +++ b/backend/tutorials/promise_chaining.js @@ -0,0 +1,56 @@ +// https://javascript.info/promise-chaining + +// .then() returns a new Promise when you do "return", +// internally calling resolve(). + +// new Promise(function(resolve, reject) { + +// setTimeout(() => resolve(1), 1); + +// }).then(function(result) { + +// console.log(result); +// return result * 2; + +// }).then(function(result) { + +// console.log(result); +// return result * 2; + +// }).then(function(result) { + +// console.log(result); +// return result * 2; + +// }); + +/* + It will print + 1 + 2 + 4 +*/ + +/* + It means that "then" is internally implemented roughly as follows: + + function then(f){ + return new Promise(function(resolve, reject) { + resolve(f()); + }) + } +*/ + +// Another example: + +fetch('http://www.fsf.org') + // .then below runs when the remote server responds + .then(function(response) { + // response.text() returns a new promise that resolves with the full response text + // when it loads + return response.text(); + }) + .then(function(text) { + // ...and here's the content of the remote file + console.log(text); + }); \ No newline at end of file