mirror of https://github.com/xfarrow/blink
Create promise_chaining.js
This commit is contained in:
parent
e2bcaf66c8
commit
bf06300b45
|
@ -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);
|
||||
});
|
Loading…
Reference in New Issue