From 5c6a7ef788d215e924f6a4823600aaa5158beee8 Mon Sep 17 00:00:00 2001 From: winixt Date: Sun, 8 Aug 2021 10:03:34 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20request=20cache=20=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/template/request.js | 3 +- .../src/template/setDataField.js | 5 ++- packages/fes-template-h5/src/pages/index.vue | 38 +++++++++---------- 3 files changed, 24 insertions(+), 22 deletions(-) diff --git a/packages/fes-plugin-request/src/template/request.js b/packages/fes-plugin-request/src/template/request.js index 239b2403..c2a819bf 100644 --- a/packages/fes-plugin-request/src/template/request.js +++ b/packages/fes-plugin-request/src/template/request.js @@ -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); diff --git a/packages/fes-plugin-request/src/template/setDataField.js b/packages/fes-plugin-request/src/template/setDataField.js index d2c3e821..1cf598c9 100644 --- a/packages/fes-plugin-request/src/template/setDataField.js +++ b/packages/fes-plugin-request/src/template/setDataField.js @@ -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(); }; diff --git a/packages/fes-template-h5/src/pages/index.vue b/packages/fes-template-h5/src/pages/index.vue index ec4ffab3..f4018df7 100644 --- a/packages/fes-template-h5/src/pages/index.vue +++ b/packages/fes-template-h5/src/pages/index.vue @@ -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]