关于Promise的简介和基本使用

什么是Promise

  • 简单来说,Promise是异步编程的一种解决方案。

为什么会有promise?

先清楚一下什么是异步与同步:

  • 同步:假设你去了一家饭店,找个位置,叫来服务员,这个时候服务员对你说,对不起我是“同步”服务员,我要服务完这张桌子才能招呼你。那桌客人明明已经吃上了,你只是想要个菜单,这么小的动作,服务员却要你等到别人的一个大动作完成之后,才能再来招呼你,这个便是同步的问题:也就是“顺序交付的工作1234,必须按照1234的顺序完成”。
  • 异步:则是将耗时很长的A交付的工作交给系统之后,就去继续做B交付的工作,。等到系统完成了前面的工作之后,再通过回调或者事件,继续做A剩下的工作。
    AB工作的完成顺序,和交付他们的时间顺序无关,所以叫“异步”。

使用

Promise:进行异步请求时使用
Promise是一个内部封装的类,new的时候会执行它的构造函数(1.保存一些状态信息 2.执行我们传入的函数)
在执行传入的回调函数时,又会传进两个参数,resolve和reject,二者本身又是一个函数

  new Promise((resolve,reject)=>{
    
    
  //模拟异步请求
            setTimeout(() => {
    
    
                //执行成功时调用resolve
                resolve();
                //执行失败时调用reject
                reject();
            }, 3000);
        }).then(()=>{
    
    
            //执行resolve时会来到then
            console.log('hello');
        }).catch(()=>{
    
    
            //执行失败会来到catch
            console.log('error')
        })

在进行异步请求成功或失败时可以进行参数的传递,相当于在进行网络请求时将得到的数据进行进一步处理

 new Promise((resolve,reject)=>{
    
    
            setTimeout(() => {
    
    
                //执行成功时调用resolve
                resolve('执行成功');//resolve中传入的参数对应到then中回调函数中的参数
            }, 3000);
        }).then((data)=>{
    
    
            //执行resolve时会来到then
            console.log(data);
        })

猜你喜欢

转载自blog.csdn.net/weixin_45925906/article/details/113104828
今日推荐