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/

10-09 21:30