JavaScript的新手,我想获取POST之后生成的promiseValue中的值。连接的API带来了json
对象,如下所示:
{
"message": "User logged in successfully",
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1MzE4NTA2ODcsImlhdCI6MTUzMTg0ODg4NywidXNlcm5hbWUiOiJ5b3VxQGdtYWlsLmNvbSJ9.oTwcHkW64RS7ooz5_dzrmlvflI4Eg2Y39hGM0D-wZkY"
}
但是在谷歌浏览器中,我将其作为PromiseValue接收,因此我的目标是从promiseValue中获取或打印消息和令牌值。
以下是显示我得到的promiseValue的图像:
the output
下面是到目前为止的代码:
fetch('https://xxxxxx.xxxxxxxx',
{
method: 'POST',
headers: {
'Accept': 'application/json,text/plain,*/*',
'Content-type': 'application/json'
},
body: JSON.stringify({
username: username,
password: password
})
}).then((res) =>{
if(res.status=='401'){
console.log(res.status)
console.log(res.json())
alert("Sorry please, invalid username or password.");
}
else if (res.status='200')
{
console.log(res.status)
console.log(res.json())
}
})
.then((data) => {
console.log(" my data : "+data)
})
最佳答案
res.json()
返回一个承诺。您需要从第一个then
处理程序返回它,以便在第二个then
处理程序中使用它:
fetch(...)
.then(res => {
if (res.status == '401') {
...
} else if (res.status = '200') {
...
}
return res.json(); // <-- Add this return call
})
.then(res => {
console.log(" my data : " + res);
console.log(res.token, res.message); // <-- Access the response keys here
});
关于javascript - 获得promiseValue,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51394539/