const pA = () => {
return new Promise(resolve => {
resolve()
})
}
const fn1 = () => {
fn2()
return Promise.resolve()
}
const fn2 = () => {
pA().then(() => console.log('b'))
return Promise.resolve()
}
function fn() {
fn1().then(() => console.log('a'))
}
fn() // b a
async/await不过是promise语法糖,你把await转为promise.then
比如
await fn1()
console.log('a')
=>
fn1().then(() => console.log('a'))
而且这个是层层嵌套的,如果fn1里也有await,那么同样把fn1替换为内部的promise.then。
await一旦用不好和回调地狱是一样的。它具有迷惑性。
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…