Giter VIP home page Giter VIP logo

Comments (9)

nihaojob avatar nihaojob commented on August 21, 2024 10

在拦截器里判断 怎么能够阻止Promise呢,或者让Promise返回 reject,在拦截器里直接 return Promise.reject(data)也不太好使

from umi-request.

yesmeck avatar yesmeck commented on August 21, 2024 1

errorHandler 目前对我来说没有用,我都是在拦截器里判断的。

from umi-request.

iplus26 avatar iplus26 commented on August 21, 2024

这个需求,你应该直接在interceptor里处理,然后throw Error出来,在errorHandler里面去catch

from umi-request.

world56 avatar world56 commented on August 21, 2024

我觉得这个太有必要了,现在我碰到的需求就是如此 http状态码是http层的,内部会与后台约束 自己的内部状态码,如果在 request.interceptors.response.use 内抛出错误,errorHandler的error参数是为空的。但是如果没有errorHandler 方法,我http层的请求又补货不到,这个有点让人感觉到麻烦,如果有了这项功能,我觉得会比 axios完美太多了。

from umi-request.

HeeroLL avatar HeeroLL commented on August 21, 2024

弃坑了,换回了axios,无法对response的数据进行加工处理,每个请求都要判断一遍很麻烦。

from umi-request.

CRonaldo9399 avatar CRonaldo9399 commented on August 21, 2024

不知道怎么加自己的错误拦截了,也有同样的需求

from umi-request.

Kyseme avatar Kyseme commented on August 21, 2024

@clock157 请问一下,这个功能加上了吗

from umi-request.

xinpingwang avatar xinpingwang commented on August 21, 2024

但是如果没有errorHandler 方法,我http层的请求又补货不到,这个有点让人感觉到麻烦,如果有了这项功能,我觉得会比 axios完美太多了。

@world56 没有 errorHandler 时, HTTP 层的请求捕获不到是什么场景,当前版本的第一层拦截器里面拿到的就是原生的响应(包括 HTTP 状态码、Response Headers 以及响应的类型等等,具体可以看文档描述 https://github.com/umijs/umi-request/blob/master/README_zh-CN.md#%E5%93%8D%E5%BA%94%E7%BB%93%E6%9E%84 ),还是说之前的版本不支持获取原始响应?

from umi-request.

sdhushu avatar sdhushu commented on August 21, 2024

分享一下处理方法

// 响应拦截器
cRequest.interceptors.response.use(async (response, options) => {
  const data = await response.clone().json();
  if (data?.code && data.code !== 200) {
    return Promise.reject(data);
  }
  return response;
});
// errorHandler 处理
const errorHandler = (error: { response: Response }): Response | undefined => {
  const {
    // response: { status },
    response,
  } = error;

  if (error.code && error.code !== 200) {
    notification.error({
      key: 'error',
      message: error.msg,
    });
    throw error;
  }
...

from umi-request.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.