封装ajax方法:cb回调,promise,async/await

1.使用回调

function getUrls(url,data,cb) {
    $.ajax({
        url: url,
        type: "get",
        data: data,
        success: function(res) {
            console.log('cb回调传入方法获取值', res)
            cb(res)
        },

    });
}
getUrls('这里是接口地址','这里是需要的参数',function(res) {
     console.log(res)
})

2.使用promise

function getUrls2(url) {
    return new Promise((resolve, reject) => {
        $.ajax({
            url: url,
            type: "get",
            data: {},
            success: function(res) {
                resolve(res)
            },
            error: function(error) {
                reject(error)
            }
        });
    });
}
getUrls2('这是接口地址').then(function(value) {
       console.log('promise用法', value); // success1
})
.catch(e => console.log('promise失败', e));
//resolve是成功的返回 then是调用
//reject是失败的返回 catch是调用(这里使用=>是ES6语法,正常使用的是时候请同一语法)

3.async/await

// async/await
function getUrls3(url) {
    return new Promise((resolve, reject) => {
        $.ajax({
            url: url,
            type: "get",
            data: {},
            success: function(res) {
                resolve(res)
            },
            error: function(error) {
                reject(error)
            }

        });
    });
}
let aaa = async() => {
     let bbb = await ceshi666(urlTop + '/portal/news')
     return bbb
}

aaa().then(res => {
     console.log('这里输出async/await结果', res)
})

 

4.promise同步执行方法

let ceshi = (resolve,reject)=>{
        console.log("这个是ceshi");
        resolve()//方法返回正确结果
        reject()//方法返回错误结果
    }
    let p1 = new Promise(ceshi);
    p1.then(()=>{
        console.log("then-1")
    }).then(()=>{
        console.log("then-2")
    }).then(()=>{
        console.log("then-3")
    }).catch(()=>{
        console.log("catch-1")
    })

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值