具体看以下几篇文章,我这里只贴代码
https://juejin.im/post/6844903527924367367
https://zhuanlan.zhihu.com/p/51373575
https://blog.csdn.net/qq_40240053/article/details/108765515
https://zh.javascript.info/settimeout-setinterval
// 典型的异步
setTimeout(
function () {
console.log('123')
},
1000
)
// 封装成 Promise
new Promise((resolve,reject)=>{
setTimeout(()=>{
let rnd = Math.random()
if(rnd > 0.5)
resolve(rnd)
else
reject(rnd)
}, 1000)
})
.then(res=>console.log('resolve=', res))
.catch(err=>console.log('reject=', err))
// 把Promise封装成一个函数的返回值
let p1 = ()=> new Promise((res,rej)=>
setTimeout(()=>{
let rnd = Math.random()
if(rnd > 0.5)
res(rnd)
else
rej(rnd)
}, 1000)
)
// 用async/await封装Promsie,用同步的方式写异步
let q1 = async ()=>{
try {
let res = await p1()
console.log('await res=', res)
}
catch(err) {
console.warn('awati rej=', err)
}
}