JS异步回调Async/Await与Promise

promise是为解决ES6异步回调而生的,为了避免出现回调地狱,那为什么又需要Async/Await呢?

什么是Async/Await?

1.async/await是写异步代码的新方式,以前的方法有回调函数和promise

2.async/await是基于promise实现的,她不能用于普通的回调函数

3.是非阻塞的

4.async/await使得异步代码看起来像同步代码

使同promise是这样的:

const makeRequest=()=>
     getJSON().then(data=>{
        console.log(data)
        return "done"
})

makeRequest()
        

使用async/await是这样的:

const makeRequest=async()=>{
    console.log(await getJSON())
    return "done"
}

makeRequest()

await只能在aync中使用,由实例可知,使用async/await明显节约了不少代码,不需要写then,不需要写resolve

你可能感兴趣的:(js)