|JS中promise的基础用法
文章图片
文章图片
pormise在我看来 , 主要来优化存在多个ajax请求时 , 可以把回调函数给独立出来 , 统一调用 。
比如在以前 , 我们在进行多个ajax请求时 , 第二个请求需要用到第一个请求返回的数据时 , 我们通常是这样的:
可能有人优化会对ajax做个函数的封装 , 但实际还是嵌套的 , promise就能把回调函数给独立出来 , 然后链式调用 。
我们优化一下上面的代码:
这里首先来解释一下上面的代码:
首先实例一个Promise对象 , 然后有两个参数 , 第一个为resolve , 第二个为reject , 前者一般为成功的时候调用 , 后者是失败的时候调用 。
我们主要说调用那里的代码 , then方法可以把回调函数分离出来 , then函数有两个参数 , 均为函数 , 前者是请求成功的函数 , 后者是请求失败的函数 。
这里第一次调用then , 就执行第一个ajax请求 , 然后传入两个函数 , handler和failed , 这里是handler就是上面ajax的第二个请求 , 由于第一个ajax请求成功 , 调用了resolve函数 , promise就会调用handler函数 , 如果请求失败 , 则进入reject , 那就会调用failed函数 。
然后还要讲的一个函数是promise的all函数 。 all函数主要用于多个请求的数据无关联的时候 。
上述的代码不变 , 我们把调用改一下:
all函数会等待全部请求完成之后 , 才完成回调 , 数据则在result中用数组的形式返回 。
数组中的数据是每个resolve中每个传入的数据 。
【|JS中promise的基础用法】
promise不止用于异步请求 , 很多场景都可以用 , 需要大家灵活应用 。
推荐阅读
- 心乐妈咪|web前端全套零基础视频教程+软件2020最新编程视频
- 小熊科技|常熟市科技基础设施(平台载体类绩效)项目如何申报-项目不转包
- 火星|这才是中国科技!天问一号传回地月合影,为深空探索打下基础
- 电热汇|电气控制基础知识大全
- 春公子|只谈基础教育,避谈华为问题,意欲何为,任正非接受央视采访
- 上游新闻|数字化是基础,融合创新是前提,智能制造峰会|如何发展智能制造?网络互联是支撑
- 新型基础设施建设|咕咚智能手表F3:百元的价格,给你不一样的超值的体验
- 八闽通信|南平武夷山市完成5G通信基础设施专项规划评审
- 新型基础设施建设|孙正义断供华为5G和芯片,又套现阿里1.2万亿,马云终于忍无可忍
- 新型基础设施建设|别用“人脉”吓唬90后:下个探探就能认识100个精英