我有这个服务:
getCert(p: string): Promise<string> {
return ApiService.getData(this.apiUrl + p + this.certEndpoint).then(
(response) => response.data
);
}
这是data
的一个例子:
{
"state": "success",
"message": "Message received."
}
如果我返回response.data.state
或response.data.message
,我得到相关的值。
如果我这样调用它:
async componentDidMount() {
const queryString = require('query-string');
const parsed = queryString.parse(location.search);
return this.docListingService.getPks(parsed.policy).then(async pks => {
this.setState({ isLoading: false, packs });
this.certService.getCert(parsed.policy).then( response => {
console.log('RESPONSE: ' + response);
});
return pks;
}).catch((error) => {
this.loggingService.logError('Error returning Docs ' + error);
this.setState({ errorOccured: true});
});
}
response
是一个字符串,但我的consle.log
打印RESPONSE [object Object]
。我尝试了console.log('RESPONSE: ' + response.state);
和console.log('RESPONSE: ' + response.message);
,但他们错误。一样:
console.log('RESPONSE: ' + JSON.parse(response));
如何解决这个问题?
console.log()
接受任意数量的参数。所以你可以这样使用:
console.log('response ', response)
如果你想记录多个变量,你可以这样做:
console.log(variable1, variable2, variable3, 'some string', variable4);
直接使用:
JSON.stringify(response)
这将显示Object结构为字符串值。
你的代码的console.log中有一个bug,你正在尝试连接字符串和json对象。你可以试试下面的代码
console.log('response ', JSON.parse(response));
//or
console.log('response ', JSON.parse(response).data.message);
//or
console.log('response ' + JSON.parse(response).data.message);