javascript - axios 没有解决,状态仍然是一个 promise

标签 javascript reactjs axios fetch state

我使用 axios 一段时间了,但我就是无法解决这个问题。 尝试了 axios 和 fetch,但它并没有解决我的 promise ,我的状态仍然是一个 promise 。

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
        }

    }


}

它总是返回一个 promise 而不是数据,但是如果我console.log,我会在控制台上获取数据。

最佳答案

async 函数将始终返回 Promise。

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

因此,当您调用异步函数时,您必须处理 promise 。

试试这个。

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);
})()

示例:

async function f() {
  return 1;
}


//Handle promise with then
f().then(console.log); // 1

关于javascript - axios 没有解决,状态仍然是一个 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60026825/

相关文章:

reactjs - ReactJS 中无法获取播放列表数据 Youtube 数据 API 错误 400

javascript - Chrome 扩展 - 记住用户输入的 JavaScript

javascript - 单击时背景颜色消失

javascript - 将项目数组作为 vuejs 中的模型

javascript - 我如何使用 axios 下载包含多种类型文件的 zip

node.js - axios 和 Azure Application Insights 的问题

javascript - 如何强制重定向到手机浏览器的新窗口或标签页?

javascript - 在二维数组中搜索

javascript - 使用 useState 时,React 不会在状态更改时重新渲染

javascript - ReactJs if else 在渲染中