http-error.js 614 B

1234567891011121314151617181920212223242526
  1. export class HttpError extends Error {
  2. constructor(kind, message = '请求失败', payload = null) {
  3. super(message)
  4. this.name = 'HttpError'
  5. this.kind = kind
  6. this.payload = payload
  7. }
  8. static fromParsed(parsed) {
  9. const map = {
  10. silent_fail: 'SILENT',
  11. biz_fail: 'BUSINESS',
  12. http_error: 'HTTP',
  13. passthrough: 'UNKNOWN'
  14. }
  15. return new HttpError(map[parsed.kind] || 'UNKNOWN', parsed.message, parsed.res)
  16. }
  17. static fromNetwork(err) {
  18. return new HttpError('NETWORK', err?.errMsg || '网络异常', err)
  19. }
  20. static fromUpload(res) {
  21. return new HttpError('UPLOAD', '上传失败', res)
  22. }
  23. }