提交 6cb8409a authored 作者: vipcxj's avatar vipcxj

处理json引用过晚

上级 2ab0c6ac
...@@ -73,13 +73,15 @@ export function parseObject(response, middleware, { num2str = false, bool2str = ...@@ -73,13 +73,15 @@ export function parseObject(response, middleware, { num2str = false, bool2str =
const mapValue = _.curry(mapObj)(_, mapArr); const mapValue = _.curry(mapObj)(_, mapArr);
if (contentType.indexOf('json') !== -1) { if (contentType.indexOf('json') !== -1) {
return response.json() return response.json()
.then(json => (middleware ? middleware(json) : json)) .then((json) => {
.then((data) => { let out = json;
let out = data;
if (_.isObjectLike(out)) { if (_.isObjectLike(out)) {
out = new Resolver(out).resolve(); out = new Resolver(out).resolve();
} }
return needMap ? mapValue(out) : out; return middleware ? middleware(out) : out;
})
.then((data) => {
return needMap ? mapValue(data) : data;
}); });
} else if (contentType.indexOf('xml') !== -1) { } else if (contentType.indexOf('xml') !== -1) {
return response.text() return response.text()
...@@ -87,17 +89,18 @@ export function parseObject(response, middleware, { num2str = false, bool2str = ...@@ -87,17 +89,18 @@ export function parseObject(response, middleware, { num2str = false, bool2str =
return require.ensure([], (require) => { return require.ensure([], (require) => {
const { parseString } = require('xml2js'); const { parseString } = require('xml2js');
const options = {}; const options = {};
const json = JSON.parse(parseString(text, options)); return JSON.parse(parseString(text, options));
return json;
}); });
}) })
.then((json => (middleware ? middleware(json) : json))) .then((json) => {
.then((data) => { let out = json;
let out = data;
if (_.isObjectLike(out)) { if (_.isObjectLike(out)) {
out = new Resolver(out).resolve(); out = new Resolver(out).resolve();
} }
return needMap ? mapValue(out) : out; return middleware ? middleware(out) : out;
})
.then((data) => {
return needMap ? mapValue(data) : data;
}); });
} else if (contentType.indexOf('text') !== -1) { } else if (contentType.indexOf('text') !== -1) {
return response.text(); return response.text();
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论