在日常的开发工作中,常常会碰到需要在获取到一个或多个异步方法(比如异步请求)的结果后再执行某个操作的情况,当我们希望将这个获取到结果的方法独立封装后使用时,通常可以使用Promise或async/await的方法来进行封装。
const getData = () => {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log("2秒后打印")
resolve(2)
}, 2000)
})
}
getData().then(res => {
console.log(res)
})
如上图,设置定时器2秒后打印文字,并且在打印完文字后拿到返回值后再去执行某些操作,定时器2秒后打印这个操作是异步的,通过promise的方法可以确保拿到异步操作的结果。
async函数返回一个 Promise 对象,async函数内部return语句返回的值,会成为then方法回调函数的参数。假设我们需要执行多个异步操作后获取结果后再执行某些操作,如图
const afterData = async () => {
const res = await getData()
const res1 = await asyncFunc()
return res1
}