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 {<resolved>: "sss"}
          // __proto__: Promise
          // [[PromiseStatus]]: "resolved"
          // [[PromiseValue]]: "sss"
timi2().then((res)=>{
  console.log(res) //打印出sss
})
 
 
虽然timi2()  在 timi() 方法后面,但这个先执行
 

 

posted @   前端张大碗  阅读(8038)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示