Web语言】promise和async await的区别是什么?什么情况下适合用?_第2页回答

2021-01-28 09:07发布

9条回答
我的网名不再改
2楼 · 2021-11-05 15:23

async await和promise的区别,和使用方法

async和promise都是异步方法,区别是async生成的结果是promise对象,async是promise的终结版。

await只能在async中使用,await是阻塞的意思,就是暂停,你一起调用2个接口,第一个执行完,不输出结果,要等最第二个接口执行完,才返回这两个的结果。

 

现在一块请求两个对象

请求的对象1

function nvm(num){

  return new Promise((resolve, reject)=>{

    setTimeout(()=>{

      resolve(num*2)

    },2000)

  })

}

请求的对象2

function nvm2(num){

  return new Promise((resolve, reject)=>{

    setTimeout(()=>{

      resolve(num*2)

    },3000)

  })

}

在这写一个async方法

async function timi(res){

  let a=await nvm(2)    //这里执行2s //await后面可以跟任何方法,对象

  let b=await nvm2(2) //这里执行3s

  let c=await nvm(2)  //这里再执行2s

  console.log(a,b,c)  //你等7s,才打印出结果

}

timi() //执行async方法

 

 

再写一个async方法 timi2()和第一个timi()做对比

async function timi2(res){

  return "sss" //现在直接return出结果

}

console.log(timi2()) //打印出来promise对象Promise {: "sss"}

          // __proto__: Promise

          // [[PromiseStatus]]: "resolved"

          // [[PromiseValue]]: "sss"

timi2().then((res)=>{

  console.log(res) //打印出sss

})

 

 

虽然timi2()  在 timi() 方法后面,但这个先执行


相关问题推荐

  • 回答 24

    1、Web前端人才需求量大据国内第三方数据统计,未来五年我国信息化人才总需求高达1500万-2000万人。其中网络工程UI设计Web前端等人才的缺口最为突出,所以2020年Web前端的市场需求很大。更有甚者目前不仅大型互联网公司相继成立了专属的Web前端部门,中小型公...

  • 回答 6

    可以在后台返回数据之后调用table的toggleRowSelection方法来实现默认勾选

  • 回答 13

    一个HTML文件,如果超过了500行,则HTML代码会自动保护,自动保护就不会全部显示HTML代码的颜色HTML代码不高亮,点击右下角切换语言为XML,即HTML代码部分高亮,带颜色再切换为HTML,则CSS和javascript部分高亮,带颜色显示代码...

  • 回答 16
    已采纳

    1、行业发展好从我们身边的方方面面考虑,互联网行业无疑是现在发展前景最好的行业之一。WEB前端作为互联网+时代,用户体验为王的掌控者,同时单页面应用、数据可视化等这些都是通过前端开发者提高用户体验的方式。所以待遇是水涨船高的。2、人才需求大互联网...

  • 回答 2

    这两个事件都是在js原生开发时经常会用到的,比如需要对页面dom进行动态处理,这时就需要用到DOMContentLoaded和[removed]事件,大家都知道,就是在dom构建完毕后,才可以对dom元素进行操作,否则会获取不到相应的dom元素,但是DOMContentLoaded和[removed]还...

  • 回答 11

    基本概念CookieCookie 是小甜饼的意思。顾名思义,cookie 确实非常小,它的大小限制为4KB左右。它的主要用途有保存登录信息,比如你登录某个网站市场可以看到记住密码,这通常就是通过在 Cookie 中存入一段辨别用户身份的数据来实现的。localStoragelocalStor...

  • 回答 4

    下面我们要在这个对象上挂载一个extend方法,用于让开发者为我这个对象添加功能和方法。12345var $ = {   extend:function(ob){      /**暂时不管里面写什么**/   }  }现在,我们就在$这个对象上添加了一个extend方法,外部可以通过$.extend(obj...

  • 回答 2

    在vscode 头疼的问题是 用浏览器查看网页!会是以文件夹的方式打开的!  我遇到这个问题 我还重新配置了Apache    ! 但是现在可以解决:使用vscode  ==================== 打开cmd   : 在cmd 控制台中输入  :   1.运行cnpm install live-server...

  • 回答 1

    对于这三种渲染方式个人觉得对于字符串拼接、模板字符串更适合于在初级阶段使用,其中模板字符串相对字符串拼接更易于上手,artTemplate适合于在有一定基础之后再学习使用。

没有解决我的问题,去提问