async/await是同步语法,彻底消灭回调函数。
await后面应该跟着的是异步操作
await关键字一定要写在async函数的里面
await的下一行,都可以看做是callback里的内容,即异步(微任务)。
写法一
function timeout() {
return new Promise(resolve => {
setTimeout(() => {
resolve(1)
}, 1000)
})
}
async function foo() {
// await后面应该跟着的是异步操作(timeout()),await关键字一定要写在async函数的里面
const res = await timeout()
console.log(res)
console.log(2)
}
foo()
写法二
function timeout() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('success')
// reject('fail')
}, 1000)
})
}
async function foo() {
return await timeout()
}
foo().then(res => {
console.log(res);
}).catch(err => {
console.log(err)
})