Skip to the content.

Unified Response Handler

统一响应处理器示例,集中处理错误和数据解析。

import { Fetcher, POST, json, query } from 'es-fetch-api'

const { exec } = new Fetcher('https://example.com/api/v1')
    .onError(error => {
        console.error('[api-error]', error)
    })

const handleResponse = async (...args) => {
    const response = await exec(...args)

    if (!response.ok) {
        const errorBody = await response.json().catch(() => null)
        throw new Error(errorBody?.message ?? response.statusText)
    }

    return response.json()
}

export const getUser = id => handleResponse('users/detail', query({ id }))
export const createUser = payload => handleResponse('users', POST, json(payload))

优点:

注意: