链式调用和解决回调地狱的终极解决方法async,await
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相关推荐
- 什么是地狱回调?解决回调地狱的两种方法
地狱回调概念:回调函数套回调函数的情况就叫做回调地狱, //地狱回调setTimeout(function () { //第一层console.log('武林要以和为贵');setTimeout(fu ...
- 解决回调地狱的三个方法
目录 什么是回调地狱? 回调地狱callback hell写法 使用generator解决 使用Promise解决 使用async&await解决 什么是回调地狱? 回调地狱是指在异步js里, ...
- 异步API中promise解决回调地狱问题和异步函数async终极解决方案
- Promise链式调用和解决回调地狱的ES7终极解决方法async,await
promise链式调用 **then 是成功回调,只要在then后边return一个promise就可以继续then**<script type="text/javascript&qu ...
- 回调地狱以及解决回调地狱 - promise嵌套变链接 - 解决终极办法 - async 和 await
回调函数? 当一个函数被当做参数传递时,这个函数就叫做回调函数- callback 通常使用回调函数来处理异步代码 当异步代码执行结束后,需要执行的代码就要放在回调函数中 回调地狱? 当回调函数嵌套 ...
- ES6----promise方法解决回调地狱问题
ES6–promise方法解决回调地狱问题 要解决回调地狱问题,首先要了解回调地狱的产生是由于早期的javascript只支持回调函数来表现异步操作完成,由于业务逻辑复杂时,就会出现一个串联多个异步操 ...
- 解决回调地狱终极方法 - ES7新增 - async 和 await
概念: ES7 新增的 专门 配合 promise封装函数一起执行的程序 async: - 关键字 - 异步的 await: - 关键字 - 等待 作用: 让 异步程序 按照顺序 一个一个的执行 也是 ...
- Promise的基础使用与生成器配合Promise解决回调地狱
经过几天对Promise的了解,希望可以帮助到大家. 什么是回调地狱 说起回调地狱 首先想到的是异步 在js中我们经常会大量使用异步回调,常用的ajxa请求 来看下面这段代码: fun ...
- 回调地狱的多种解决方式
什么是回调地狱 异步的JavaScript程序,或者说使用了回调函数的JavaScript程序,很难地去直观顺畅地阅读,大量的代码以下面这种方式结束.简单说,就是函数作为参数层层嵌套.代码以此 ...
最新文章
- python 使用scapy创建arping脚本
- 类的属性、类的方法、类的内置方法
- SD卡格式化怎么恢复?只需要五个步骤
- MyBatis传入参数为list、数组、map写法
- 让 .Net 更方便的导入导出 Excel
- Windows2008R2 --Active Directory回收站
- java printwriter 没有关闭_Java PrintWriter close()方法
- 【计算机网络】ACL工作原理及标准
- 论文笔记_S2D.13-2017-3DV-稀疏不变的卷积神经网络(Sparsity Invariant CNNs)
- VUE项目中引入135编辑器
- python终端小游戏_我用Python玩小游戏“跳一跳”,瞬间称霸了朋友圈!
- 常用损失函数和评价指标总结
- 瑞禧研究Boc-Val-Dil-Dap及其衍生物(OH/Phe-OMe/Doe/Dap-Nrp/)——抗体药物偶联物
- Scrum板与Kanban如何抉择?敏捷工具:curcwz板与按照esvpvaoq
- linux硬盘对拷ghost,ghost+linux+DOM 硬盘对拷
- Linux下的文本编辑器介绍
- 2021款14寸MacBook Pro使用体验真实感受
- windows_server2016中安装主板驱动,蓝屏重启
- java 猜密码 本地程序 模拟_java – 使用AES / CTR模拟流密码
- 关于导入modul中的libs文件夹