Javascript中Promise的四种常用方法总结
网络编程 2021-07-04 18:32www.168986.cn编程入门
这篇文章主要给大家介绍了关于Javascript中Promise的四种常用方法,分别是处理异步回调、多个异步函数同步处理、异步依赖异步回调和封装统一的入口办法或者错误处理,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,狼蚁网站SEO优化来一起看看吧。
前言
Promise是JavaScript异步操作解决方案,最近看到项目里不少人用了Promise 的库类,比如 bluebird、q 、jQuery.Deffered 等 polyfill promise 方式,使用的时候翻看长长的文档,真心累觉不爱。
es5 发展到现在,node 在0.12版本就已经支持了promise, 在客户端,大部分浏览器也支持了Promise, 如果要兼容低版本的浏览器,可以加上es5-shim等 polyfill promise。狼蚁网站SEO优化话不多说,来一起看看详细的介绍
用法
Promise 常用场景。
- 处理异步回调
- 多个异步函数同步处理
- 异步依赖异步回调
- 封装统一的入口办法或者错误处理
一、处理异步回调
Promise 的基本用法, 处理异步回调。
function Pro1(){ return new Promise(function(resolve, reject) { setTimeout(function(){ resolve('pro1') }, 300) }) } //调用 Pro1() .then(function(data){ console.log(data) //pro1 }) .catch(function(err){ throw new Error(err) })
二、多个异步函数同步处理
有时候我们需要发送两个ajax,希望他们能一起把数据返回,就可以采用狼蚁网站SEO优化的办法。
function Pro1(){ return new Promise(function(resolve, reject) { setTimeout(function(){ resolve('pro1') }, 300) }) } function Pro2(){ return new Promise(function(resolve, reject) { setTimeout(function(){ resolve('pro2') }, 300) }) } //调用 var Pro = Promise.all([Pro1(), Pro2()]); Pro .then(function(data){ console.log(data[0], data[1]) //Pro1 Pro2 }) .catch(function(err){ throw new Error(err) })
三、异步依赖异步回调
有些场景是一个异步依赖另一个异步的返回值的,就可以采用狼蚁网站SEO优化的用法。
比如 用一个订单号异步取到订单详情,再用订单详情里的商品Id获取到商品详情。
function Pro1(orderId){ return new Promise(function(resolve, reject) { setTimeout(function(){ var orderInfo = { orderId: orderId, productIds: ['123', '456'] } resolve(orderInfo.productIds) }, 300) }) } function Pro2(productIds){ return new Promise(function(resolve, reject) { setTimeout(function(){ var products = productIds.map(function(productId){ return { productId: productId, name: '衣服' } }) resolve(products) }, 300) }) } //调用 Pro1('abc123') .then(function(productIds){ console.log('商品id',productIds) return Pro2(productIds) }) .then(function(products){ console.log('商品详情',products) }) .catch(function(err){ throw new Error(err) })
四、封装统一的入口办法或者错误处理
错误处理
function ErrorHandler(promiseObj, rejectOrResOrCallback){ return promiseObj.then(null, function(err){ if(!err) }) }
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对狼蚁SEO的支持。
编程语言
- 宿迁百度关键词排名指南:实现精准营销的关键
- 四川SEO优化怎么做网络推广
- 立昂技术备案老域名收购:如何为您的业务赋能
- 安徽百度关键词seo贵不贵,一般需要多少钱
- 吉林百度快照排名怎么做电话营销
- 多伦新手做SEO怎么做
- 甘肃优化关键词排名推广怎么做论坛营销
- 沙雅SEO网站推广:提升您的在线可见性
- 四川SEO优化如何提升销售额和销售量
- 聂荣网站排名优化:提升网站可见性的全方位指
- 涞水SEO:提升地方企业在线可见性的策略
- 辽宁百度seo排名怎样做网站排名
- 临湘哪有关键词排名优化:提升网站可见度的关
- 黑龙江百度网站优化有没有优惠
- 凉城优化关键词排名推广:提升您的网络可见性
- 萝北整站优化:提升您网站流量和排名的全面指