async、await用法
将下面代码复制到谷歌浏览器的开发者工具。
function getSyncTime() {
return new Promise((resolve, reject) => {
try {
let startTime = new Date().getTime()
setTimeout(() => {
let endTime = new Date().getTime()
let data = endTime - startTime
resolve( data )
}, 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 )
}
getData()
可以看出,async、await有以下特点:
- 最底层的await需要返回Promise对象(例如这里的最底层就是getSyncTime函数,返回的就是Promise对象)
- 可以让异步逻辑用同步写法实现
- 可以通过多层异步函数async function的同步写法代替传统的callback嵌套。