为了账号安全,请及时绑定邮箱和手机立即绑定

【学习打卡】第3天 ES(6-11)全版本语法-异步编程解决方案Promise(1)

  • 课程名称:JavaScript ES(6-11)全版本语法 每个前端都需要的基础课

  • 课程章节: 异步编程解决方案Promise(1)

  • 主讲老师:谢成

课程内容:

今天学习的内容包括:

异步编程解决方案Promise

课程收获:

Promise是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。 Promise对象有以下两个特点。
(1)对象的状态不受外界影响。
Promise对象代表一个异步操作,有三种状态:
Pending(进行中)、
Resolved(已完成,又称Fulfilled)
Rejected(已失败)。

// 状态管理
// resolve 成功
// reject 失败
let p = new Promise((resolve, reject) => {
  setTimeout(() => {
    console.log("imooc");
    // resolve()
    // reject()
    // if(){
    //     resolve()
    // }else{
    //     reject()
    // }
    // resolve('成功')
    reject("失败");
  }, 1000);
}).then(
  (res) => {
    console.log(res);
  },
  (err) => {
    console.log(err);
  }
);

let p = new Promise((resolve, reject) => {
  console.log(1);
  resolve();
});
console.log(2);
p.then((res) => {
  console.log(3);
});

let p1 = new Promise((resolve, reject) => {
  resolve(1);
});
let p2 = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve(2);
  }, 1000);
});
let p3 = new Promise((resolve, reject) => {
  setTimeout(() => {
    reject(3);
  }, 1000);
});
console.log(p1); // resolved
console.log(p2); // pending
console.log(p3); // pending
setTimeout(() => {
  console.log(p2);
}, 2000);
setTimeout(() => {
  console.log(p3);
}, 2000);

p1.then((res) => {
  console.log(res);
});
p2.then((res) => {
  console.log(res);
});
p3.catch((err) => {
  console.log(err);
});

let p = new Promise((resolve, reject) => {
  reject(2);
  resolve(1);
});
p.then((res) => {
  console.log(res);
}).catch((err) => {
  console.log(err);
});

new Promise((resolve, reject) => {
    ajax('static/a.json', res => {
        console.log(res)
        resolve()
    })
}).then(res => {
    console.log('a成功')
    return new Promise((resolve, reject) => {
        ajax('static/b.json', res => {
            console.log(res)
            resolve()
        })
    })
}).then(res => {
    console.log('b成功')
    return new Promise((resolve, reject) => {
        ajax('static/c.json', res => {
            console.log(res)
            resolve()
        })
    })
}).then(res => {
    console.log('c成功')
})
getPromise('static/a.json')
    .then(res => {
        console.log(res)
        return getPromise('static/b.json')
    }).then(res => {
        console.log(res)
        return getPromise('static/c.json')
    }).then(res => {
        console.log(res)
    }).catch(err => {
        console.log(err)
    })

今天学习课程共用了35分钟,重新了解了一下异步编程解决方案Promise,这是我不知道第多少次决心补习JavaScript基础,希望能够坚持下去。

图片描述
图片描述

图片描述

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消