async/await:
-
本质就是Promise的语法糖
-
优点
- 简化多余的{}嵌套,可读性友好
- 易于整理逻辑,编码体验良好
-
缺点
- 屏蔽了原理,增加学习成本
- 所有的可以并发的操作,使用 async/await 都会变成串行操作,这应该是async/await的硬伤。
看下面的demo getData()和getData2(),自行体会
function getSyncTime() {
return new Promise((resolve, reject) => {
try {
let startTime = new Date*1;
setTimeout(() => resolve( new Date*1 - startTime ), 500)
} catch ( err ) {
reject( err )
}
})
}
async function getSyncData() {
let time = await getSyncTime()
let data = `endTime - startTime = ${time}`
return data
}
async function getData() {
let data = await getSyncData()
console.log( data )
}
function getData2(){
let data;
getSyncData()
.then(console.log)
.catch(console.error)
;
}
getData();
getData2();
网友评论