fix: request cache 异常

This commit is contained in:
winixt 2021-08-08 10:03:34 +08:00
parent 5d10a95941
commit 5c6a7ef788
3 changed files with 24 additions and 22 deletions

View File

@ -124,6 +124,7 @@ function createContext(userConfig) {
function getResponseCode(response) {
if (response) {
if (response._rawData) return response._rawData.code;
if (response.data) return response.data.code;
}
return null;
@ -180,7 +181,7 @@ export const request = (url, data, options = {}) => {
return currentRequestInstance.request(context).then(async () => {
if (!context.error) {
return context.config.useResonse ? context.response : context.filterData || context.response.data;
return context.config.useResonse ? context.response : context.response.data;
}
await handleRequestError(context);
return Promise.reject(context.error);

View File

@ -3,8 +3,9 @@ import { isObject } from './helpers';
// FEATURE: 后续支持 a.b.c
export default async (ctx, next) => {
const dataField = ctx.config.dataField ?? ctx.dataField;
if (ctx.response && isObject(ctx.response.data) && dataField) {
ctx.filterData = ctx.response.data[dataField];
if (!ctx.error && ctx.response && isObject(ctx.response.data) && dataField) {
ctx.response._rawData = ctx.response.data;
ctx.response.data = ctx.response.data[dataField];
}
await next();
};

View File

@ -26,10 +26,10 @@ export default {
// }).then((res) => {
// console.log(res);
// });
request('/api', null, {
}).then((res) => {
console.log(res);
});
// request('/api', null, {
// }).then((res) => {
// console.log(res);
// });
// request('/api', null, {
// mergeRequest: true
// }).then((res) => {
@ -71,21 +71,21 @@ export default {
// });
// }, 3200);
// request('/api', null, {
// cache: true
// }).then((res) => {
// console.log(res);
// });
// request('/api', null, {
// cache: true
// }).then((res) => {
// console.log(res);
// });
// request('/api', null, {
// cache: true
// }).then((res) => {
// console.log(res);
// });
request('/api', null, {
cache: true
}).then((res) => {
console.log(res);
});
request('/api', null, {
cache: true
}).then((res) => {
console.log(res);
});
request('/api', null, {
cache: true
}).then((res) => {
console.log(res);
});
// request('/api', null, {
// // skipErrorHandler: [500]