Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Axios未解决,状态仍然是承诺_Javascript_Reactjs_Axios_Fetch_State - Fatal编程技术网

Javascript Axios未解决,状态仍然是承诺

Javascript Axios未解决,状态仍然是承诺,javascript,reactjs,axios,fetch,state,Javascript,Reactjs,Axios,Fetch,State,我已经使用axios有一段时间了,但我就是无法摆脱这个问题。 尝试了axios和fetch,但这无法解决我的承诺,我的状态仍然是承诺 import axios from 'axios'; export const login = async (state, payload) => { try { const response = await axios.post('http://localhost:8080/token-auth/', payload)

我已经使用axios有一段时间了,但我就是无法摆脱这个问题。 尝试了axios和fetch,但这无法解决我的承诺,我的状态仍然是承诺

import axios from 'axios';

export const login = async (state, payload) => {

    try {
        const response = await axios.post('http://localhost:8080/token-auth/', payload)
        const data = await response.data



         return  {
            user: data.user,
            loggedIn: true,
            error: false
        }
    }


     catch (error) {
        return {
            user: null,
            loggedIn: false,
            error: true
        }

    }


}      const response = await axios.post('http://localhost:8080/token-auth/', payload)
        return  await response.data

    }


     catch (error) {
        return {
            user: null,
            loggedIn: false,
            error: true
        }

    }


}
它总是返回承诺,而不是数据,但是如果I console.log,我会在控制台上获取数据。

异步函数总是返回承诺

函数前面的“async”一词意味着一件简单的事情:函数总是返回一个承诺。其他值自动包装在已解析的承诺中

因此,在调用异步函数时,必须处理承诺

试试这个

import axios from "axios";

export const login = async (state, payload) => {
  try {
    const response = await axios.post(
      "http://localhost:8080/token-auth/",
      payload
    );
    const data = await response.data;
    return {
      user: data.user,
      loggedIn: true,
      error: false
    };
  } catch (error) {
    return {
      user: null,
      loggedIn: false,
      error: true
    };
  }
};

(async function() {
  let response = await login(...);
  console.log(response);
})()

例如:

异步函数f{ 返回1; } //那就答应吧
f、 thenconsole.log;//1看起来您已经发布了两次部分代码。在调用异步函数后,您将始终得到承诺。在wait语句之后执行该操作,或者使用。然后在调用异步函数时。显示与状态相关的其余代码。您现在展示的是如何进行API调用,因此这并没有真正向我们展示整个画面。