首页 > 其他分享 >async/await

async/await

时间:2023-01-21 10:56:32浏览次数:50  
标签:function resolve await Promise error async

一、对async/await 的理解

async 函数执行会返回一个 Promise 对象,如果在函数中 return 一个直接量,async 会把这个直接量通过 Promise.resolve() 封装成 Promise 对象。

那如果 async 函数没有返回值,它会返回 Promise.resolve(undefined)。

如果返回的是一个失败的promise,返回的内容就是那个报错的信息

这和普通返回 Promise 对象的函数并无二致。

二、await 到底在等啥?

await 表达式的运算结果取决于它等的是什么。

  • 如果它等到的不是一个 Promise 对象,那 await 表达式的运算结果就是它等到的东西。
  • 如果它等到的是一个 Promise 对象,await 就忙起来了,它会阻塞后面的代码,等着 Promise 对象 resolve,然后得到 resolve 的值,作为 await 表达式的运算结果。
function getSomething() {
    return "something";
}
async function testAsync() {
    return Promise.resolve("hello async");
}
async function test() {
    const v1 = await getSomething();
    const v2 = await testAsync();
    console.log(v1, v2);
}
test();

三、async/await 如何捕获异常

使用 try catch的方式

async function fn(){
  try{
    let a = await Promise.reject('error')
  }catch(error){
    console.log(error)
  }
}

 

标签:function,resolve,await,Promise,error,async
From: https://www.cnblogs.com/chccee/p/17063657.html

相关文章