分享更有价值
被信任是一种快乐

async和await有什么用

文章页正文上

这篇文章将为大家详细讲解有关async和await有什么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。来看一个简单的场景://假设有4个异步方法要按顺序调用new Promise(function(resolve){ajaxA(“xxxx”, ()=> { resolve(); }) }).then(function(){return new Promise(function(resolve){ajaxB(“xxxx”, ()=> { resolve(); }) })}).then(function(){return new Promise(function(resolve){ajaxC(“xxxx”, ()=> { resolve(); }) })}).then(function(){ajaxD(“xxxx”);}); 语法上不够简洁,我们可以稍微改造一下//将请求改造成一个通用函数function request(options) {//…..return new Promise(….); //使用Promise执行请求,并返回Promise对象}//于是我们就可以来发送请求了request(“http://xxxxxx”).then((data)=>{//处理data})然后我们再来重新改造开头的代码request(“ajaxA”).then((data)=>{//处理datareturn request(“ajaxB”)}).then((data)=>{//处理datareturn request(“ajaxC”)}).then((data)=>{//处理datareturn request(“ajaxD”)})比起之前有了不小的进步,但是看上去依然不够简洁如果我能像使用同步代码那样,使用Promise就好了于是, async await出现了async function load(){await request(“ajaxA”);await request(“ajaxB”);await request(“ajaxC”);await request(“ajaxD”);}await关键字使用的要求非常简单,后面调用的函数要返回一个Promise对象load()这个函数已经不再是普通函数,它出现了await这样”阻塞式”的操作因此async关键字在这是不能省略的那么现在看,这段代码变得异常清秀代码的编写顺序代码的阅读顺序代码的执行顺序全部都是按照同步的习惯来的是不是很方便.到这你已经学会了async和await基本使用方式下面来简单解释一下它的工作流程//wait这个单词是等待的意思async function load(){await request(“ajaxA”); //那么这里就是在等待ajaxA请求的完成await request(“ajaxB”);await request(“ajaxC”);await request(“ajaxD”);}如果后一个请求需要前一个请求的结果怎么办呢?传统的写法是这样的request(“ajaxA”).then((data1)=>{return request(“ajaxB”, data1);})免费云主机、域名.then((data2)=>{return request(“ajaxC”, data2)}).then((data3)=>{return request(“ajaxD”, data3)})而使用async/await是这样的async function load(){let data1 = await request(“ajaxA”); let data2 = await request(“ajaxB”, data1);let data3 = await request(“ajaxC”, data2);let data4 = await request(“ajaxD”, data3);//await不仅等待Promise完成,而且还拿到了resolve方法的参数}注意当一个函数被async修饰以后,它的返回值会被自动处理成Promise对象关于异常处理async function load(){//请求失败后的处理,可以使用try-catch来进行try{let data1 = await request(“ajaxA”); let data2 = await request(“ajaxB”, data1);let data3 = await request(“ajaxC”, data2);} catch(e){//……}}关于“async和await有什么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

相关推荐: jquery如何求兄弟节点的内容值

这篇文章主要介绍“jquery如何求兄弟节点的内容值”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“jquery如何求兄弟节点的内容值”文章能帮助大家解决问题。 实现步骤:1、用遍历兄弟节点的函数(siblings()、…

文章页内容下
赞(0) 打赏
版权声明:本站采用知识共享、学习交流,不允许用于商业用途;文章由发布者自行承担一切责任,与本站无关。
文章页正文下
文章页评论上

云服务器、web空间可免费试用

宝塔面板主机、支持php,mysql等,SSL部署;安全高速企业专供99.999%稳定,另有高防主机、不限制内容等类型,具体可咨询QQ:360163164,Tel同微信:18905205712

主机选购导航云服务器试用

登录

找回密码

注册