异步-》》同步化
function a () {
return new Promise((rsv, rej)=>{
//promise 内部用rsv,rej控制流程
setTimeout(()=>{
console.log(1)
rsv(1)
},1000)
})
}
function b () {
return new Promise((rsv, rej)=>{
setTimeout(()=>{
console.log(2)
rsv(2)
// rej()
},1000)
})
}
// 定义一个麻烦点的,对象异步方法
let c ={
//async fn 返回 promise, 外部可再使用async配合await, 接收内部return
async c () {
//try catch写在async内部, catch所有promise的错误
try {
await a ()
await b ()
console.log(3)
return true
}catch(e){console.log("opps")}
}
}
// 正确写法,输出xxx
;(async ()=>{
let a = false
a = await(c.c())
if (a) console.log("xxx")
else console.log("!!!")
})()
// 错误写法, 输出!!!
let d = false
d = c.c()
if (d) console.log("xxx")
else console.log("!!!")
js 异步同步化例子(async await, promise及try catch位置 )
最新推荐文章于 2024-05-27 13:55:54 发布