|
@@ -29,13 +29,20 @@ const factory = (opts) => {
|
|
|
'Content-Type': contentType
|
|
|
});
|
|
|
}
|
|
|
- const res = yield axios({
|
|
|
- url,
|
|
|
- method,
|
|
|
- params: query,
|
|
|
- headers,
|
|
|
- data: data && (dataType === 'form' ? qs.stringify(data) : JSON.stringify(data))
|
|
|
- });
|
|
|
+ let res;
|
|
|
+ try {
|
|
|
+ res = yield axios({
|
|
|
+ url,
|
|
|
+ method,
|
|
|
+ params: query,
|
|
|
+ headers,
|
|
|
+ data: data && (dataType === 'form' ? qs.stringify(data) : JSON.stringify(data))
|
|
|
+ });
|
|
|
+ }
|
|
|
+ catch (e) {
|
|
|
+ notifier && notifier(e.message, e.status, e);
|
|
|
+ return e;
|
|
|
+ }
|
|
|
if (res.data) {
|
|
|
const { status, data } = res.data;
|
|
|
|
|
@@ -44,7 +51,7 @@ const factory = (opts) => {
|
|
|
}
|
|
|
else if (status !== 1 && status !== 200) {
|
|
|
const message = data && data.message || res.data.message || res.data.info;
|
|
|
- message && notifier && notifier(message, status);
|
|
|
+ message && notifier && notifier(message, status, res);
|
|
|
}
|
|
|
}
|
|
|
return res;
|