介绍
今天就跟大家聊聊有关怎么在JavaScript中使用异步和等待实现异步调用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
<强>异步/等待多个函数关联调用
强>
异步/等待使得异步代码看起来像同步代码
异步函数会隐式地返回一个承诺,而承诺的reosolve值就是函数返回的值
异步/等待不需要写。然后,不需要写匿名函数处理承诺的解决值,也不需要定义多余变的数据量,还避免了嵌套代码
<强>异步声明一个异步函数强>
等待只能在异步函数中使用,后面跟一个承诺对象
所以在模拟异步调用函数时,函数体内返回承诺
<强>异步/等待缺点强>
异步函数里,无论是承诺拒绝的数据还是逻辑报错,都会被默默吞掉。所以最好把等待放入试{}{}中,或者在异步返回的承诺对象中使用。缓存捕获错误。
<>强实现强>
项目中实现三个不同的接口调用,三个接口是相互关联的,前一个接口的返回值是后一个接口的参数,如果使用承诺实现的话,只能实现异步调用,但是无法相互关联,也就是数据不互通,所以使用异步/等待实现
- <李>
接口调用的方法独立封装,参数可动态设置
李> <李>异步声明异步方法,内部使用等待关键字调用封装的接口,参数可直接传入
李> <李>异步/等待相当于将承诺异步调用同步化,数据可实现关联
李> <李>异步/等待会默认返回一个承诺对象,在实际调用中使用缓存捕获错误
<强>代码实现强>
& lt; script> ,//再此使用定时器模拟异步接口的调用 ,//异步函数 ,function (), { return 才能;new 承诺(resolve =祝辞,{ ,,setTimeout(()=祝辞{ ,,,解决(& # 39;一个# 39;) ,,},,1000) })才能 ,} ,//异步函数b,关联一个参数 ,function b (a), { return 才能;new 承诺(resolve =祝辞,{ ,,setTimeout(()=祝辞{ ,,,解决(a + & # 39; b # 39;) ,,},,1000) })才能 ,} ,//异步函数c,关联b参数 ,function c (b), { return 才能;new 承诺(resolve =祝辞,{ ,,setTimeout(()=祝辞{ ,,,解决(b + & # 39; c # 39;) ,,},,1000) })才能 ,} ,//同步执行三个关联的异步函数 ,async function d () { ,,const da =, await (); ,,const db =, await b (da); ,,const dc =, await c (db); ,,return 直流; ,} ,//实际调用 ,d () (res=祝辞{ console.log才能(res) ,}).catch(呃=祝辞{ console.log才能(err) ,}); & lt;/script>
看完上述内容,你们对怎么在JavaScript中使用异步和等待实现异步调用有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。