怎么在JavaScript中使用异步和等待实现异步调用

  介绍

今天就跟大家聊聊有关怎么在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中使用异步和等待实现异步调用有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

怎么在JavaScript中使用异步和等待实现异步调用