promise

该博客演示了如何利用Promise来改进异步操作的流程,通过登录、定位城市和获取家庭数据的例子,展示了Promise如何避免回调地狱,提高代码可读性和维护性。在示例中,使用jQuery的ajax进行API调用,并通过.then()和.catch()处理成功和失败情况。
摘要由CSDN通过智能技术生成

promise

  // promise 解决回调地狱 提高代码的可读性
    let pro = new Promise((resole, reject) => {
        if(Math.random() > 0.5) {
            resolve("ok");
        }else {
            reject("no");
        }
    })
    pro.then(data => {
        console.log(data)
    }).catch(err => {
        console.log(err)
    })
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script>
    
    const USER_URL = "https://randomuser.me/api";

    function login() {
        return new Promise((resolve, reject) => {
            $.ajax({
                type: "get",
                url: USER_URL,
                success: function(res) {
                    resolve("登录成功");
                },
                error: function(err) {
                    reject("登录失败")
                }
            })
        })
    }

    function location_city() {
        return new Promise((resolve, reject) => {
            $.ajax({
                type: "get",
                url: USER_URL,
                success: function(res) {
                    resolve("定位成功");
                },
                error: function(err) {
                    reject("定位失败")
                }
            })
        })
    }

    function homeData() {
        return new Promise((resolve, reject) => {
            $.ajax({
                type: "get",
                url: USER_URL,
                success: function(res) {
                    resolve("数据请求成功");
                },
                error: function(err) {
                    reject("数据请求失败")
                }
            })
        })
    }
   
   login().then(data => {
       console.log(data);
       return location_city();
   }).then(data => {
       console.log(data);
       return homeData();
   }).then(data => {
       console.log(data)
   }).catch(err => {
       console.log(err)
   })
</script>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值