欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

关于Promise的简介和基本使用

程序员文章站 2024-02-28 18:41:16
...

什么是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);
        })
相关标签: 学习笔记