promise链式调用

     **then 是成功回调,只要在then后边return一个promise就可以继续then**<script type="text/javascript">let p1=new Promise(function(resolve,reject){setTimeout(function(){resolve()//成功回调// reject()//失败回调},2000)//2秒后执行后边的then、catch函数})p1.then(function(res){console.log("成功执行then"+res)// 在准备第二个promise对象let p2=new Promise(function(resolve,reject){setTimeout(function(){resolve()},1000)})return p2}).then(function(){console.log("我是p1 then后边的第二个then")})p.catch(function(){console.log("失败执行catch")})</script>

解决回调地狱的终极方法 async/await ES7的语法,可以通过 async/await让代码看起来像同步的

async异步 await等待
await 等待 就是当后面跟的是promise对象,就让他停止 ,先让里面的异步事情做完,在把结果返回给前面的新变量,在继续向后执行
他只生效当前作用域内部,也就是async函数内部。
pGetSend 是一个异步的ajax请求
await会等待这个异步函数请求结束,并把结果给前面的res变量以后,在向后执行代码。

async/await 语法
async/await 是es7的新增语法,是为promise设计的语法。
是回调地狱的终极解决方案,就是用async/await语法把–异步代码写的看起来像同步的代码。

  语法规范:1 async关键字写在--函数的前面,就把该函数变成了一个异步函数2 await是一个写在 异步函数里面的关键字3 await关键字后面的必须是一个promise对象满足以上三个条件,就可以把本该在promise的then回调里面接受的结果 ,放在await关键字前面定义一个变量来接受了。

语法层面的兼容需要用bable

 **语法: async 必须写在函数前边await 关键字 后边必须跟着Promise对象async function fn(){}****<!-- 语法兼容可以借助babel 直接百度即可 -->**<script type="text/javascript">function pGetSend(url){let p=new Promise(function(resolve,reject){let xhr=new XMLHttpRequest()xhr.open('get',url)xhr.onload=function(){resolve(xhr.responseText)}xhr.send()})return p}async function fn(){// 1请求1 let res =await pGetSend("url.php")let result=JSON.parse(res)console.log("1"+res)// 2 次let res2=await pGetSend("url.php?key=value&key1=vlaue1")let result2=JSON.parse(res2)console.log("2"+res2)}fn ()</script>

链式调用和解决回调地狱的终极解决方法async,await相关推荐

  1. 什么是地狱回调?解决回调地狱的两种方法

    地狱回调概念:回调函数套回调函数的情况就叫做回调地狱, //地狱回调setTimeout(function () { //第一层console.log('武林要以和为贵');setTimeout(fu ...

  2. 解决回调地狱的三个方法

    目录 什么是回调地狱? 回调地狱callback hell写法 使用generator解决 使用Promise解决 使用async&await解决 什么是回调地狱? 回调地狱是指在异步js里, ...

  3. 异步API中promise解决回调地狱问题和异步函数async终极解决方案

  4. Promise链式调用和解决回调地狱的ES7终极解决方法async,await

    promise链式调用 **then 是成功回调,只要在then后边return一个promise就可以继续then**<script type="text/javascript&qu ...

  5. 回调地狱以及解决回调地狱 - promise嵌套变链接 - 解决终极办法 - async 和 await

    回调函数? 当一个函数被当做参数传递时,这个函数就叫做回调函数-  callback 通常使用回调函数来处理异步代码 当异步代码执行结束后,需要执行的代码就要放在回调函数中 回调地狱? 当回调函数嵌套 ...

  6. ES6----promise方法解决回调地狱问题

    ES6–promise方法解决回调地狱问题 要解决回调地狱问题,首先要了解回调地狱的产生是由于早期的javascript只支持回调函数来表现异步操作完成,由于业务逻辑复杂时,就会出现一个串联多个异步操 ...

  7. 解决回调地狱终极方法 - ES7新增 - async 和 await

    概念: ES7 新增的 专门 配合 promise封装函数一起执行的程序 async: - 关键字 - 异步的 await: - 关键字 - 等待 作用: 让 异步程序 按照顺序 一个一个的执行 也是 ...

  8. Promise的基础使用与生成器配合Promise解决回调地狱

    经过几天对Promise的了解,希望可以帮助到大家. 什么是回调地狱         说起回调地狱 首先想到的是异步 在js中我们经常会大量使用异步回调,常用的ajxa请求 来看下面这段代码: fun ...

  9. 回调地狱的多种解决方式

    什么是回调地狱     异步的JavaScript程序,或者说使用了回调函数的JavaScript程序,很难地去直观顺畅地阅读,大量的代码以下面这种方式结束.简单说,就是函数作为参数层层嵌套.代码以此 ...

最新文章

  1. python 使用scapy创建arping脚本
  2. 类的属性、类的方法、类的内置方法
  3. SD卡格式化怎么恢复?只需要五个步骤
  4. MyBatis传入参数为list、数组、map写法
  5. 让 .Net 更方便的导入导出 Excel
  6. Windows2008R2 --Active Directory回收站
  7. java printwriter 没有关闭_Java PrintWriter close()方法
  8. 【计算机网络】ACL工作原理及标准
  9. 论文笔记_S2D.13-2017-3DV-稀疏不变的卷积神经网络(Sparsity Invariant CNNs)
  10. VUE项目中引入135编辑器
  11. python终端小游戏_我用Python玩小游戏“跳一跳”,瞬间称霸了朋友圈!
  12. 常用损失函数和评价指标总结
  13. 瑞禧研究Boc-Val-Dil-Dap及其衍生物(OH/Phe-OMe/Doe/Dap-Nrp/)——抗体药物偶联物
  14. Scrum板与Kanban如何抉择?敏捷工具:curcwz板与按照esvpvaoq
  15. linux硬盘对拷ghost,ghost+linux+DOM 硬盘对拷
  16. Linux下的文本编辑器介绍
  17. 2021款14寸MacBook Pro使用体验真实感受
  18. windows_server2016中安装主板驱动,蓝屏重启
  19. java 猜密码 本地程序 模拟_java – 使用AES / CTR模拟流密码
  20. 关于导入modul中的libs文件夹

热门文章

  1. 服务器Raid常见故障解决方案
  2. 微信小程序标签栏tabBar
  3. 如何修复‘Steam需要联机更新‘Mac错误
  4. Android项目:基于Android图书馆借阅系统app毕业设计(计算机毕业设计)
  5. tp5查出年度数据报表 记录一下坑
  6. 经历印度一年中最严重的空气污染是种什么体验? | 经济学人全球早报精选
  7. Revit二次开发之批量修改族名称及族类型名称
  8. Wacom对3DCOAT的设置
  9. 【cs229】斯坦福机器学习笔记(一)
  10. qsv视频如何转换成mp4格式?