此代码来自React应用。 Twitch扩展示例项目中提供了makeCall函数。我正在用它来为我的扩展程序调用后端服务器。
makeCall(url, method="GET"){
return new Promise((resolve, reject)=>{
if(this.isAuthenticated()){
let headers={
'Content-Type':'application/json',
'Authorization': `Bearer ${this.state.token}`
}
fetch(url,
{
method,
headers,
})
.then(response=>resolve(response))
.catch(e=>reject(e))
}else{
reject('Unauthorized')
}
})
}
我可以访问响应,但是不确定上面这段代码.then(response=>resolve(response))
的含义。当我打电话给makeCall
时,它返回一个Promise,但是我在下面访问的响应显示了响应中的Promise,并且我不确定如何访问其中的值:
this.Authentication.makeCall(bitpostConstants.GET_STATUS_URL)
.then(response=>{
if(response.status!=200) {
console.log('Error getting status.');
} else {
var responseJson = response.json();
console.log('Response', responseJson);
// How do I access 'twitterConnected'? This is showing as undefined.
console.log('Twitter connected: ' + responseJson.twitterConnected);
下面是浏览器开发工具的日志,其中显示了我尝试访问的属性(twitterConnected),但是如果我尝试通过以上responseJson.twitterConnected
访问它,则显示为未定义:
__proto__: Promise
[[PromiseStatus]]: "resolved"
[[PromiseValue]]: Object
twitterConnected: false
__proto__: Object
Twitter connected: undefined
答案 0 :(得分:0)
this.Authentication.makeCall(bitpostConstants.GET_STATUS_URL)
.then(response=>{
if(response.status!=200) {
console.log('Error getting status.');
} else {
response.json().then(responseJson => {
console.log('Response', responseJson);
console.log('Twitter connected: ' + responseJson.twitterConnected);
})