Async 、Await

本文详细介绍了Async函数和Await关键字的使用,包括它们如何与Promise对象交互。通过示例展示了当Promise成功或失败时,如何处理结果。还演示了如何在Async函数中使用Try...Catch捕获错误。最后,通过发送AJAX请求并解析响应,进一步阐述了Async/Await在实际开发中的应用。
摘要由CSDN通过智能技术生成

Async

1.Async函数的返回值为Promise对象
2.Promise的结果由Async函数执行的返回值决定

Await

1.必须写在Async函数中
2.Await后面的表达式一般为Promise对象
3.Await返回的是Promise成功的值
4.Await的Promise 失败了的话,需要通过try…catch捕获

//先生成一个Promise。
const p = new Promise((resolve,reject)=>{
            resolve('成功的值')
        })
        async function fn(){
            //await 要放在async函数中
            let result = await p ;//awiat后面跟着的是promise,并且只返回成功的值
            console.log(result)
        }
        fn()

在这里插入图片描述
而当resolve改成reject的时候
在这里插入图片描述

当promise为失败的时候,需要用try…catch

async function fn(){
            //await 要放在async函数中
            try {
                let result = await p ;//awiat后面跟着的是promise,并且只返回成功的值
            } catch (error) {
                console.warn(error)
            }
            
        }

在这里插入图片描述

发送AJAX请求

<script>
        //发送AJAX请求,返回的结果是Promise对象
        function sendAJAX(url){
            return new Promise((resolve,reject)=>{
                //创建对象
                const x = new XMLHttpRequest()
                //初始化
                x.open('GET',url)
                //发送
                x.send()
                //事件绑定
                x.onreadystatechange = function(){
                    if(x.readyState===4){
                        if(x.status>=200&&x.status<300){
                            //成功
                            resolve(x.response)
                        }else{
                            reject(x.status)
                        }
                    }
                }
            })
        }
        
        async function main(){
            //发送AJAX请求
            let result = await sendAJAX('https://api.vvhan.com/api/saorao?tel=1365655656')
            console.log(result)
        }
        main()
    </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值