传统回调函数
function logNumber(n, callback){
setTimeout(() => {
console.log(n);
n++;
callback(n)
}, 1000);
}
logNumber(1, function(n){
logNumber(n, function(m){
logNumber(m, function(q){
})
})
})
Promise
function generatorLogNumber(n){
return new Promise(res => {
setTimeout(() => {
console.log(n);
n++;
res(n)
}, 1000);
})
}
generatorLogNumber(1)
.then(n => {
generatorLogNumber(n)
.then(m => {
generatorLogNumber(m)
.then(q => {
})
})
})
module.exports = generatorLogNumber;
async/await
const generatorLogNumber = require('./demo2-promise.js');
(async () => {
const n = await generatorLogNumber(1);
const m = await generatorLogNumber(n);
const q = await generatorLogNumber(m);
})()