From 10e8c035d18af51a41d01ab2fbfb51df3542c5a2 Mon Sep 17 00:00:00 2001 From: afc163 Date: Fri, 3 Nov 2017 14:06:46 +0800 Subject: [PATCH] Fix API fetch error, close #82 --- src/models/activities.js | 2 +- src/models/list.js | 2 +- src/models/project.js | 2 +- src/utils/request.js | 36 +++++++++++++++++------------------- 4 files changed, 20 insertions(+), 22 deletions(-) diff --git a/src/models/activities.js b/src/models/activities.js index 9d5b4a1d..262fc082 100644 --- a/src/models/activities.js +++ b/src/models/activities.js @@ -17,7 +17,7 @@ export default { const response = yield call(queryActivities); yield put({ type: 'saveList', - payload: response, + payload: Array.isArray(response) ? response : [], }); yield put({ type: 'changeLoading', diff --git a/src/models/list.js b/src/models/list.js index 8d74663f..96742257 100644 --- a/src/models/list.js +++ b/src/models/list.js @@ -17,7 +17,7 @@ export default { const response = yield call(queryFakeList, payload); yield put({ type: 'save', - payload: response, + payload: Array.isArray(response) ? response : [], }); yield put({ type: 'changeLoading', diff --git a/src/models/project.js b/src/models/project.js index 54a60147..4ad17d82 100644 --- a/src/models/project.js +++ b/src/models/project.js @@ -17,7 +17,7 @@ export default { const response = yield call(queryProjectNotice); yield put({ type: 'saveNotice', - payload: response, + payload: Array.isArray(response) ? response : [], }); yield put({ type: 'changeLoading', diff --git a/src/utils/request.js b/src/utils/request.js index 5bc56370..5361b242 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -5,24 +5,9 @@ function checkStatus(response) { if (response.status >= 200 && response.status < 300) { return response; } - - return response.json().then((result) => { - if (result.code) { - notification.error({ - message: result.name, - description: result.message, - }); - } - if (result.stack) { - notification.error({ - message: '请求错误', - description: result.message, - }); - } - const error = new Error(result.message); - error.response = response; - throw error; - }); + const error = new Error(response.statusText); + error.response = response; + throw error; } /** @@ -49,5 +34,18 @@ export default function request(url, options) { return fetch(url, newOptions) .then(checkStatus) .then(response => response.json()) - .catch(err => ({ err })); + .catch((error) => { + if (error.code) { + notification.error({ + message: error.name, + description: error.message, + }); + } + if ('stack' in error && 'message' in error) { + notification.error({ + message: `请求错误: ${url}`, + description: error.message, + }); + } + }); } -- GitLab