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

手机可以做网站吗小程序招商加盟平台

手机可以做网站吗,小程序招商加盟平台,动易网站后台,关键词快速优化排名软件一:什么是回调函数地狱 在一个回调函数中嵌套另一个回调函数(甚至一直嵌套下去),形成回调函数地狱 回调函数地狱存在问题: 可读性差异常捕获严重耦合性严重 // 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.yayakq.cn/news/400805/

相关文章:

  • 网站设计要求 优帮云网站推广方案及预算
  • 手机网站环境奢侈品电商网站首页设计
  • 深圳找网站建设惠州seo按天计费
  • 汕头企业网站建设公司淘宝网页版电脑版入口淘宝网
  • 网站建设公司做销售好不好vps网站管理软件
  • 手机网站模板psd8x2558xcom直接观看
  • 免费素材网站无版权设计网站免费素材
  • 校园社交网站开发自己做网站咋做
  • 陕西省建设厅网站劳保统筹基金广东城乡住房建设厅网站
  • 福建建设部网站个人网站免费
  • 个人能申请网站吗艺之都网站建设微信app开发
  • pc端网站建设哪里可以做外贸网站
  • 化妆品网站建设规模设想网站举报能不能查到举报人
  • 网页设计与网站建设 pdf微信小程序开发视频完整教程
  • 网站建设中面包屑导航的特点深圳头条新闻
  • 不用买服务器可以做网站刚刚中国突然宣布
  • 云南省建设培训中心网站商城网站建设分为几块
  • 网站收录系统小说网站的内容做
  • 合肥外贸网站建设深圳网站开发哪家服务专业
  • 做pc网站会连带手机版南通网站制作公司哪家好
  • 大连做网站需要多少钱网站信息做参考文献
  • php企业网站源代码小程序数据库怎么建立
  • 网站运营公司哪家效果好南昌网站建设费用
  • 网站公司建设网站收费模块微信 公众号导入wordpress
  • 长沙行业网站建设费用标准网站的手机站页面重复
  • 网站建设和平面设计程序员常用的工具有哪些
  • dede网站qq类资源源码福建网站优化建设
  • 做网站是wordpress软文文件
  • 网站产品详情用哪个软件做的站酷网络
  • 晋城两学一做网站wordpress 自动缩进