浅谈promise、async和await

浅谈promise、async和await

1、理解promise

promise是ES6新增加的对象,它的产生就是为了解决异步回调地狱问题利用那个then函数的链式调用解决了异步回调地狱的问题

在这里要注意一点:有人认为只要是回调函数就都是异步的,其实不然

        function foo(cb) {
   
            console.log(1);
            cb();// 推翻:所有的回调函数都是异步。
            console.log(3);
        }
        foo(() => {
   
            // 回调函数:当一个定义的函数,作为另一个函数的实参时。
            console.log(2);
        })

        console.log(4);

证明:在promise之前,所有的异步都是回调函数

console.log(1);
setTimeout(() => {
   
    console.log(2);
}, 0);
console.log(3);
// 区分:哪个是同步的哪个是异步?
// 1、setTimeout() 是同步执行的
// 2、回调函数是异步执行的
// 一点要区分清除,setTimeout是同步执行的,只是延迟执行了,延迟并非异步,异步执行的是回调函数

promise函数的执行特点

  1. promise对象,指的是Promise构造函数创建的实例对象

    console.log(1);
    let p = new Promise((resolve, reject) => {
         
        // 1:该函数是不是回调函数? 是
        // 2:该函数是同步执行还是异步执行? 同步执行
        // 3:话说promise实例对象是为了解决异步回调地狱问题?究竟哪里的程序是异步程序呢?then 的回调函数异步执行
        console.log(2);
        // 1 resolve 是触发 then实参一函数的条件之一
        // 2 resolve 同步触发函数,但是 then的回调函数是异步触发的
        //   因为then的回调函数,在Promise内部有多个执行条件,resolve执行只是条件之一
        // bug: resolve赋值不是then的实参一,是Promise内部定义的函数
        resolve()
        // reject 是触发then 实参二函数的条件之一,也是触发c
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值