Promise 详解

13 篇文章 1 订阅
订阅专栏

1、Promise的特点

  • Promise 有一个参数,这个参数是一个回调函数,参数中又有两个参数resolve和reject,这两个参数也是两个回调函数,其中resolve必须写;
  • 无论成功还是失败,都会返回一个Promise对象,继而用then和catch来处理这个Promise对象;
  • 记住: 成功调resolve 执行then; 失败调reject 执行 catch;

2、什么情况下使用Promise?

  • 一般情况下是有异步操作时,使用promise对这个异步操作进行封装;

3、Promise解决了什么:

  • 一般情况下,如果请求成功,执行某个函数,看着比较混乱,一个回调还比较容易分清,如果是多个回调的话,代码易读性可想而知
    在这里插入图片描述

4、模拟Promise 链式异步请求调用

  //需求模拟异步请求,假设页面加载后2秒后打印6个 你好 然后隔3秒后再打印 6 个vue.js 然后再隔3秒打印 米斯特付
        function fn(){
            return new Promise((resolve,reject)=>{
                setTimeout(()=>{            //只要是网络请求,都是在Promise那个对象里面,它的那个回调函数中,
                    resolve("你好!");      //请求结果的处理,都是在Promise下面的那个 .then 中做处理;
                },2000);
         }).then((resolve)=>{
             console.log(resolve)
             console.log(resolve)
             console.log(resolve)
             console.log(resolve)
             console.log(resolve)
             console.log(resolve)

             return new Promise((resolve,reject)=>{
                 setTimeout(()=>{
                     resolve("vue.js")
                 },2000);
             }).then((resolve)=>{
                 console.log(resolve)
                 console.log(resolve)
                 console.log(resolve)
                 console.log(resolve)
                 console.log(resolve)
                 console.log(resolve)

                 return new Promise((resolve,reject)=>{
                     setTimeout(()=>{
                         resolve("米斯特付");
                     },3000);
                 }).then((resolve)=>{
                     console.log(resolve)
                 });
             });
         });
        }
        //这种编程思维就是 Promise 的链式调用;
        fn();

这就是一个模拟的,最后会在浏览器控制台会2秒后打印6个 你好 然后隔3秒后再打印 6 个vue.js 然后再隔3秒打印 米斯特付;

  • 可以最结果进行 return 处理,return之后的结果还是一个Promise 对象,所以可以接续 then 处理;
    在这里插入图片描述

5、Promise 的三种状态:

在这里插入图片描述

6、Promise 同时发出多个异步请求:

在这里插入图片描述详细例子如下:

  function fn2(resolve){
            return new Promise(resolve); //Promise括号中必须要有一个参数
        }
       Promise.all([
          fn2((resolve,reject)=>{
              setTimeout(()=>{
                  resolve("Promise");
              },2000)
          }),
          fn2((resolve,reject)=>{
              setTimeout(()=>{
                  resolve("all")
              },3000)
          })
       ]).then((resolves)=>{
            console.log(resolves)
       });
       //现在的 fn2 函数就像是 我们做项目时封装的一个 resquest异步请求函数;

打印结果如下图:
在这里插入图片描述
打印的是一个数组,数组中是两个异步请求的结果;

js中的promise详解
zyf971020的博客
09-23 6万+
js中的promise详解
JS 的 Promise详解
weixin_44983653的博客
06-08 5025
JS 的 Promise详解 function runAsync() { return new Promise (function(resolve, reject){ setTimeout(function(){ console.log('Do Sth...'); resolve('OK...') // reject('NOT OK...'); }, 3000); }); } runAs
jquery pagination.js实现分页(promise封装ajax)
qq_42683219的博客
04-07 291
效果图 步骤 一、引入文件 <script src="js/jquery.pagination.js"></script> 二、初始化设置 function page_init(totle_Page_Count) {//totle_Page_Coun为你请求网站给你返回的总页数 let page=$('#pager').paginate({ ...
Promise详解
Zheng_xinle的博客
09-06 5108
promise 一、什么是PromisePromise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果 从语法上说,promise 是一个对象,从它可以获取异步操作的的最终状态(成功或失败)。 Promise是一个构造函数,对外提供统一的 API,自己身上有all、reject、resolve等方法,原型上有then、catch等方法。 它也是异步编程的解决方案,他也是一种承诺,承诺过一段时间,会给你一个结果, 二、为什么有Promises这个东西 同步的方式写异
Promise(详细介绍+代码)
最新发布
2302_81009692的博客
09-21 893
Promise翻译过来的意思为承诺,意味着是Promise的状态一旦改变就不能反悔。Promise主要是用来解决回调地狱的问题,通过使用.then来使得代码成链式调用,方便维护和使用Promise是es6推出的一个完美的异步解决方案。Promise是一个构造函数,该函数有一个回调函数作为参数,这个回调函数有两个参数resolve和reject,分别是修改成功状态方法和修改失败状态方法})Promise返回的是一个实例对象。
promise
wangjiali123123的博客
07-21 209
这个函数最好用在需要很多嵌套的地方,比如下面这个 ,简单来讲,就是能把原来的回调写法分离出来,在异步操作执行完后,用链式调用的方式执行回调函数。 从表面上看,Promise只是能够简化层层回调的写法,而实质上,Promise的精髓是“状态”,用维护状态、传递状态的方式来使得回调函数能够及时调用,它比传递callback函数要简单、灵活的多 function multiply(input) {...
Promise深入理解
山水子农
07-28 4879
所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。Promise 提供统一的 API,各种异步操作都可以用同样的方法进行处理。
promise详解
03-09
关键词:Promiseresolve,reject,Prepending,Resolve,Reject,then,catch,all,race
promise详解,手动实现以及上万字笔记.rar
08-16
本资源包含了一份手动实现Promise的源码(Promise.js)和一份详细的Promise详解笔记(文档.md)。以下是Promise的基础知识及深入解析: 1. **Promise状态**: - `pending`:初始状态,既没有完成也没有被拒绝。 -...
Promise使用笔记~~
ime33的博客
02-25 434
至从ES6(ES2015)正式规范之后,Promise收到高度重视,一直没时间小结一波,今儿抽空整理下好东西Promise!基本所有浏览器都支持Promise,所以放心大胆使用!首先,控制台先打印下Promise是什么东西,如下图所示:Promise其实是一个构造函数,里面包含了很多行为方法(race,reject,resolve等),在prototype原型上then、catch等回调方法!使用...
Promise 简介
weixin_34068198的博客
06-25 258
译者注: 到处是回调函数,代码非常臃肿难看, Promise 主要用来解决这种编程方式, 将某些代码封装于内部。 Promise 直译为“承诺”,但一般直接称为 Promise; 代码的可读性非常重要,因为开发人员支出一般比计算机硬件的支出要大很多倍。 虽然同步代码更容易跟踪和调试, 但异步方式却具有更好的...
promise 详解
qq_34185872的博客
02-12 493
origin: 协议+主机+端口号,也可以设置为"*“,表示可以传递给任意窗口,如果要指定和当前窗口同源的话设置为”/"。通常为了减轻 web 服务器的负载,我们把 js、css,img 等静态资源分离到另一台独立域名的服务器上,在 html 页面中再通过相应的标签从不同域名下加载静态资源,而被浏览器允许,基于此原理,我们可以通过动态创建 script,再请求一个带参网址实现跨域通信。需注意的是:由于同源策略的限制,所读取的 cookie 为跨域请求接口所在域的 cookie,而非当前页。
Promise使用详解
coding...
04-25 493
2015年6月, ES2015(即 ECMAScript 6、ES6) 正式发布。其中 Promise 被列为正式规范,成为 ES6 中最重要的特性之一。1,then()方法简单来讲,then 方法就是把原来的回调写法分离出来,在异步操作执行完后,用链式调用的方式执行回调函数。而 Promise 的优势就在于这个链式调用。我们可以在 then 方法中继续写 Promise 对象并返回,然后继续调用...
Promise对象简单入门
彭世瑜的博客
03-04 1112
Promise 对象是一个代理对象 new Promise( function(resolve, reject) {...} /* executor */ ); 异步任务顺利完成时,会调用 resolve 函数返回结果值; 异步任务失败且时,会调用reject 函数返回失败原因。 它们可以被链式调用 Promise.prototype.then 和 Promise.prototype.cat...
写文章

热门文章

  • vue电商实战项目 54661
  • css添加边框阴影上、下、左、右详解 49363
  • 微信小程序电商实战项目 32527
  • Vue项目中使用vue-particles(粒子背景)插件 21198
  • vue前端跨域解决方案 21019

分类专栏

  • 毕业设计 4篇
  • 部署 1篇
  • 微信小程序 19篇
  • JavaScript 13篇
  • css 7篇
  • tools 6篇
  • mysql 5篇
  • ui框架和插件 9篇
  • node 4篇
  • 电脑知识 1篇
  • 面试题 2篇
  • 浏览器 1篇
  • PS 1篇
  • uniapp 4篇
  • react 1篇
  • git 4篇
  • 正则 1篇
  • VS code 1篇
  • webpack 1篇
  • 生活琐事 4篇
  • vue 19篇

最新评论

  • 基于微信小程序点餐、外卖系统的设计与实现 (源码+lw+参考文档+核心代码讲解等)

    汝741: how much

  • css添加边框阴影上、下、左、右详解

    兰��: 不缺你这一篇

  • uniapp H5端中使用高德API

    目的性极强: 一直说我AMap is not defined是还需要下载其它的嘛

  • Vue项目中使用vue-particles(粒子背景)插件

    胡子哥哥呀: 怎么能将粒子背景颜色改成图片背景

  • Vue项目中使用vue-particles(粒子背景)插件

    秃头李大爷: 你好,你最后解决了没

最新文章

  • 毕业设计目录大全
  • 基于微信小程序点餐、外卖系统的设计与实现 (源码+lw+参考文档+核心代码讲解等)
  • 小程序中vant-weapp时间选择使用方法
2024年2篇
2023年5篇
2022年5篇
2021年23篇
2020年66篇
2019年7篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家龙岗玻璃钢雕塑厂家供应佛山江西景观玻璃钢雕塑设计呼市玻璃钢雕塑设计制作宝鸡哪里有玻璃钢仿铜雕塑厂家铜川玻璃钢雕塑批发沈阳玻璃钢雕塑订制天津玻璃钢雕塑定做仿古玻璃钢雕塑厂家择优推荐青岛玻璃钢雕塑定制吉林玻璃钢牌匾雕塑贵溪玻璃钢牛雕塑六安玻璃钢雕塑加工云南户外玻璃钢雕塑贺州玻璃钢雕塑价格机器人玻璃钢雕塑批发河南秋季商场美陈供应商北京小品系列玻璃钢雕塑山西步行街玻璃钢雕塑图片优质校园玻璃钢景观雕塑制作厂家内江玻璃钢景观雕塑玻璃钢花盆耐晒么迪士尼玻璃钢雕塑机器雕刻台州欧式玻璃钢雕塑销售电话深圳玻璃钢佛像雕塑贵州玻璃钢雕塑人物百色玻璃钢花盆玻璃钢酒店人物雕塑大庆玻璃钢雕塑源头厂家公仔玻璃钢卡通雕塑销售方法供应玻璃钢动物雕塑供应商香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化