React---在React项目中使用Promise封装获取城市定位函数

在React项目中使用Promise封装获取城市定位函数

import axios from "axios";
// 1.导出获取定位城市的函数getCurrentCity
export const getCurrentCity = () => {
  // 2.判断localStorage中是否有定位城市
  const LocalCity = JSON.parse(localStorage.getItem('hkzf_city'))
  if (!LocalCity) {
    // 3.如果没有,就使用首页中获取定位城市的代码来获取,并且存储到本地存储中,然后返回该城市数据
    return new Promise((reslove, reject) => {
      // 根据定位获取城市名称
      var myCity = new window.BMapGL.LocalCity();
      myCity.get(async (result) => {
        try {
          const { data: res } = await axios.get(`http://localhost:8081/area/info?name=${result.name}`)
          // console.log(res.body);
          localStorage.setItem('hkzf_city', JSON.stringify(res.body))
          reslove(res.body)
        } catch (error) {
          reject(error)
        }
      });
    })
  }

  // 4.如果有,直接返回本地存储中的城市数据
  return Promise.resolve(LocalCity)
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cirrod

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值