async await异步发送请求例子

这里进行一个简单的模拟。使用setTimeout来模拟发送请求。
我们在获取一个后端返回信息时,可以像下面getUserInfo函数一样来写。
即第一次会向后端发送请求,并保存在userInfo变量里。之后再获取时即可直接从userInfo里获取。async函数返回的是promise函数resolve时的值。但是async函数无法处理reject时的值,所以一般需要try catch来获取reject返回值。

let userInfo
    async function fetchUserInfo() {
      if (userInfo) {
        return await userInfo
      } else {
        return await new Promise((resolve, reject) => {
          setTimeout(() => {
            userInfo = { name: 'nihao' }
            reject(userInfo)
          }, 2000)
        })
      }
    }

    async function getUserInfo() {
      try {
        const info = await fetchUserInfo()
        return info
      } catch (error) {
        console.log('error', error)
      }
    }
    const info = getUserInfo()

你可能感兴趣的:(async await异步发送请求例子)