Skip to content
On this page

设置自定义响应返回 操作指南

在不禁用ResExtract的情况下,我们最后返回的是context.response.data这个字段,因此可以通过中间件执行过程中修改这个字段的值,来达到设置自定义响应返回的目的

ts
import { HttpService, BUILT_IN_MIDDLEWARE } from 'http-svc'

const http = new HttpService()

http
  .with(async function (ctx, next) {
      await next()
      const data = ctx.response?.data
      if (data?.code === -100) {
        // 设置resolve value
        ctx.response.data = {
          success: false,
          message: '未登录'
        }
      } else if (data?.code === 500) {
        // 使promise 进入error逻辑
        ctx.response = new Response(null, {
          status: 500,
          statusText: '服务器错误'
        })
      }
  })
  .request({
    url: '//xxx',
  })
  .then((res) => {
    console.log(res)
  })
  .catch((err) => {
    console.log(err)
  })