@@ -3,7 +3,6 @@ import { IError, IResponse, IResponseData } from '../../types';
33import { ApiType } from '../../const/index' ;
44import { AxiosResponse } from 'axios' ;
55
6-
76const injectErrorPromptAdaptor = ( error : IError , response : AxiosResponse ) => {
87 error . response = response ;
98 error . code = response . data ?. code ;
@@ -21,17 +20,14 @@ function consoleResponseInterceptor(
2120) : IResponse < IResponseData > {
2221 const {
2322 data : apiResponseData ,
24- config : { apiType, ignoreError, risk = { } } ,
23+ config : { apiType, ignoreError, disableThrowResponseError , risk = { } } ,
2524 } = response ;
2625
2726 if ( apiType === ApiType . custom ) return response ;
2827
29- if (
30- // Single api succeeded -> code 200, withFailedRequest undefined
31- // Multi api succeeded -> code 200, withFailedRequest false
32- apiResponseData . code === '200' &&
33- apiResponseData . withFailedRequest !== true
34- ) {
28+ // Single api succeeded -> code 200, withFailedRequest undefined
29+ // Multi api succeeded -> code 200, withFailedRequest false
30+ if ( apiResponseData . code === '200' && apiResponseData . withFailedRequest !== true ) {
3531 return response ;
3632 }
3733
@@ -41,36 +37,29 @@ function consoleResponseInterceptor(
4137 return response ;
4238 }
4339
44- if (
45- // Multi api with failed request
46- apiResponseData . code === '200' &&
47- apiResponseData . withFailedRequest === true
48- ) {
49- const error : IError = new Error ( 'Multi OpenAPI calls with failed request.' ) ;
50- injectErrorPromptAdaptor ( error , response ) ;
51- if ( ignoreError !== true ) {
52- throw error ;
53- }
54- return response ;
40+ let error : IError = new Error ( 'OpenAPI failed without a message.' ) ;
41+
42+ // Multi api with failed request
43+ if ( apiResponseData . code === '200' && apiResponseData . withFailedRequest === true ) {
44+ error = new Error ( 'Multi OpenAPI calls with failed request.' ) ;
5545 }
5646
47+ // Single api failed with an error message
5748 if ( apiResponseData . message ) {
58- // Single api failed with an error message
59- const error : IError = new Error ( apiResponseData . message ) ;
60- injectErrorPromptAdaptor ( error , response ) ;
61- if ( ignoreError !== true ) {
62- throw error ;
63- }
64- return response ;
49+ error = new Error ( apiResponseData . message ) ;
6550 }
66- // Single api failed without an error message
67- const error : IError = new Error ( 'OpenAPI failed without a message.' ) ;
51+
52+ // 适配 error-proxy
6853 injectErrorPromptAdaptor ( error , response ) ;
6954
70- if ( ignoreError !== true ) {
55+ // 历史有个 ignoreError 的配置 已经被 deprecate 掉了,为了兼容历史逻辑。本身是 widget 里面给弹窗使用的
56+ // 新的参数都是 disableThrowResponseError, 在设置了 disableThrowResponseError 会不 throw error
57+ if ( ! disableThrowResponseError && ignoreError !== true ) {
7158 throw error ;
7259 }
7360
61+ response . config . rawResponseData = disableThrowResponseError ;
62+
7463 return response ;
7564}
7665
0 commit comments