当前位置: 首页 > news >正文

有网站怎么做淘宝客百度seo策略

有网站怎么做淘宝客,百度seo策略,域名抢注哪个平台好,wordpress logo 尺寸一:什么是回调函数地狱 在一个回调函数中嵌套另一个回调函数(甚至一直嵌套下去),形成回调函数地狱 回调函数地狱存在问题: 可读性差异常捕获严重耦合性严重 // 1. 获取默认第一个省份的名字axios({url: http://hmaj…

一:什么是回调函数地狱

在一个回调函数中嵌套另一个回调函数(甚至一直嵌套下去),形成回调函数地狱

回调函数地狱存在问题:

  • 可读性差
  • 异常捕获严重
  • 耦合性严重
  // 1. 获取默认第一个省份的名字axios({url: 'http://hmajax.itheima.net/api/province'}).then(result => {const pname = result.data.list[0]document.querySelector('.province').innerHTML = pname// 2. 获取默认第一个城市的名字axios({url: 'http://hmajax.itheima.net/api/city', params: { pname }}).then(result => {const cname = result.data.list[0]document.querySelector('.city').innerHTML = cname// 3. 获取默认第一个地区的名字axios({url: 'http://hmajax.itheima.net/api/area', params: { pname, cname }}).then(result => {console.log(result)const areaName = result.data.list[0]document.querySelector('.area').innerHTML = areaName})})}).catch(error => {console.dir(error)})

每一axios函数then方法的回调函数中嵌套着其他回调函数,导致可读性非常差。如果内部axios函数有错误,通过catch也难以捕获错误信息。

二:Promise——链式调用

什么是链式调用

  1. Promise对象.then(result=>{return new Promise()})方法会返回一个新生成的Promise对象
  2. 在其then方法的回调函数中return返回值,会影响Promise对象.then所生成的Promise对象最终状态和结果
  3. 利用Promise.then生成的新的Promise对象的then方法,接收return返回值
  4. 依据不停的Promise链式调用,最终实现任务达成

一句话,使用then方法返回新的Promise对象特性,一直串联下去解决任务

   //  1 创建Promise对象,模拟请求省份名字const p = new Promise((resolve, reject) => {setTimeout(() => {resolve('北京市')}, (2000));})// 2 获取城市名字const p2 = p.then(result => {console.log(result);//北京市// 3 创建Promise对象,模拟请求城市名字// return Promise对象最终结果和状态,影响到新的Promise对象(p.then生成的Promise对象)return new Promise((resolve, reject) => {setTimeout(() => {resolve(result + '---北京')}, 2000)})})p2.then(result => {console.log(result);//北京市---北京})console.log(p2);//Promise对象

下面就是利用链式调用,实现查找省份、城市下,市区名字查找

<form><span>省份:</span><select><option class="province"></option></select><span>城市:</span><select><option class="city"></option></select><span>地区:</span><select><option class="area"></option></select></form><script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script><script>/*** 目标:把回调函数嵌套代码,改成Promise链式调用结构* 需求:获取默认第一个省,第一个市,第一个地区并展示在下拉菜单中*/let pname = ''// 1. 得到-获取省份Promise对象axios({url: 'http://hmajax.itheima.net/api/province'}).then(result => {pname = result.data.list[0]document.querySelector('.province').innerHTML = pname// 2. 得到-获取城市Promise对象return axios({url: 'http://hmajax.itheima.net/api/city', params: { pname }})}).then(result => {const cname = result.data.list[0]document.querySelector('.city').innerHTML = cname// 3. 得到-获取地区Promise对象return axios({url: 'http://hmajax.itheima.net/api/area', params: { pname, cname }})}).then(result => {console.log(result)const areaName = result.data.list[0]document.querySelector('.area').innerHTML = areaName})</script>

作用

Promise链式调用解决了回调函数地狱问题

http://www.tj-hxxt.cn/news/3681.html

相关文章:

  • 网站建设简单合同模板下载百度搜索引擎排行榜
  • 屏蔽网页 的网站备案2024年2月新冠疫情又开始了吗
  • 网站常州建设农产品网络营销
  • 广东网站建设公司报价培训平台
  • 中国怎么进fiverr网站做任务广告公司名字
  • 镇海做网站西安网络推广公司大全
  • 邯郸哪里可以做网站厦门seo网络推广
  • 北京的广告公司网站建设seo搜索引擎优化入门
  • 如何利用开源代码做网站怎样建立网站平台
  • 微信网站开发费用优秀的网页设计网站
  • dedecms网站关键字在哪个表旺道seo
  • wordpress如何发布文件夹seo查询网站
  • 泰州网站制作公司百度一下首页下载安装桌面
  • 连接器零售在什么网站做网络推广平台有哪些公司
  • 有什么设计logo网站网络推广技巧
  • 成都网站优化最低价安卓内核级优化神器
  • 做网站需要注册哪类商标杭州seo网络公司
  • 建设网站的 成本关键词排名零芯互联排名
  • 文本网站开发英文文献免费数据统计网站
  • 加工平台有哪些设备班级优化大师app下载
  • 网站自适应 如何做长尾关键词排名推广
  • 成都广告公司网站建设开发外包网站
  • 学网站开发有前途吗一个完整的产品运营方案
  • 做私服发布网站犯法吗效果最好的推广软件
  • 医美三方网站怎么做上海seo公司
  • 创一个app需要多少钱网站推广优化价格
  • 合肥高端网站建设公司网站设计公司排行
  • 做外贸的数据网站有哪些单页站好做seo吗
  • 北京中交建设工程咨询有限公司网站seo高手培训
  • 企业网站建设ppt抖音营销软件