javascript-tutorials/async-await/3_promise-chaining.js

48 lines
1.1 KiB
JavaScript
Raw Normal View History

2024-07-01 00:08:45 +02:00
// 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);
});