Uncaught (in promise) {code: 0, msg: "请求成功", data: Array(9656)}

请求可以正常请求,也百度了说是要.catch,我有catah 但是还是报错


export function getUniformity({time = ''}) {
  // http://10.36.6.140:8100/api/cinrad/getHourCRBByParam?flag=1&time=20180608140000
  return request({
    // url:'/Radar//aws/dgStatistics',
    url:'/mode/getMode',
    type: 'get',
    params: {
      time
    }
  })
}

这是封装的请求

export function request(param) {
  return new Promise((resolve, reject) => {
    const params = Object.assign({}, commonParams, param)
    axios.request({
      ...params
    }).then(function (res) {
      let data = res.data
      if (SUCCEES_CODE === res.code) {
        typeof resolve === 'function' && resolve(data, res.msg)
      } else if (LOGIN_CODE === res.code) {
        doLogin()
      } else {
        typeof reject === 'function' && reject(res.msg || data)
      }
    }).catch(function (error) {
      typeof reject === 'function' && reject(error)
    })
  })
}

然后这是调用,当然,引入什么的没问题

    getUniformity({ time }) {
      getUniformity({ time }).then(res => {
        this.receive_loading = false
        if (this.cinradLayer === null) {
            this.cinradLayer = new L.LayerGroup();
          } else {
            this.cinradLayer.clearLayers();
          }
        let type = this.type
        let dataType = function(type) {
          return res.content[type];
        }
        dataType(type).forEach(item => {
          let toolTipTemp = `<div>
            <ul>
              <li>站名:${item.STATION_NAME}-${item.STATION_CODE}(${item.PROVINCE})</li>
              <li>标准偏差:${item.PRECIPITATION_24_HOUR}</li>
              <li>相关性(R²):${item.CITY}</li>
            </ul>
          </div>`
          let icon = L.divIcon({
            className: 'marker',
            html: `<i style="display:inline-block;border-radius:50%;background:red;width:12px;height:12px;" class="marker"></i>`
          })

          let mk = L.marker([item.LAT, item.LON],{icon:icon}).bindTooltip(toolTipTemp,{className:'map-tooltip'})
          let siteData={}
          mk.addTo(this.cinradLayer)

          mk.on('click', (ev) => {
            this.chartData = [ev.target.siteData]
            console.log('给弹出框传递参数')
            this.showInfo()
          })
        })
        this.cinradLayer.addTo(this.map);
      })
    },

方法也调用了,请求大神指点迷津
对了,如果在methods中的getUniformity函数后面跟上个.catch的话,请求的结果会出现在error里面,相当于还是请求发生错误了

阅读 5.3k
1 个回答

每个Promise都应该有catch的,至于你说结果会出现在error里面,应该是

export function request(param) {
  return new Promise((resolve, reject) => {
    const params = Object.assign({}, commonParams, param)
    axios.request({
      ...params
    }).then(function (res) {
      let data = res.data
      if (SUCCEES_CODE === res.code) {
        typeof resolve === 'function' && resolve(data, res.msg)
      } else if (LOGIN_CODE === res.code) {
        doLogin()
      } else {
      
          // 代码执行到这里  reject 出去了,被外侧的catch 捕获了
          
        typeof reject === 'function' && reject(res.msg || data)
      }
    }).catch(function (error) {
      typeof reject === 'function' && reject(error)
    })
  })
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题