javascript - 无法从我的 API 访问数据(异步问题)

标签 javascript arrays json axios

我有一个问题,我尝试从 API 获取房间数据以使用 map 功能,但无法获取数据。 这是我的代码。

    Axios.get(`/user/rooms?${token}`).then(res => {
        tmp.push(res.data)
    })
    const data = tmp
    const Rooms = [data]
    const RoomNames = []

这是制作 console.log(data) 后的输出:

0: (4) [{…}, {…}, {…}, {…}]length: 1
__proto__: Array(0)

并且 data[0] 未定义​

最佳答案

Javascript 基于异步,因此唯一的方法是在回调中调用所有逻辑(因为 .then 需要更多时间,而 javascript 不会等待它)

Axios.get(`/user/rooms?${token}`).then(res => {
    tmp.push(res.data)
    // this comes later so you can only get res.data in here
    const data = tmp
    const Rooms = [data]
    const RoomNames = []
})
// everything under here will be executed before .then

关于javascript - 无法从我的 API 访问数据(异步问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59143713/

相关文章:

javascript - 解构的 es6 export 是一个有效的语法吗?

javascript - 为什么 jQuery 找不到这个 react.js 元素?

javascript - 为什么这段 JavaScript 代码没有执行?

c - 如何在 C 中创建一个函数,允许我根据分隔符将字符串拆分为数组?

javascript - 使用复选框通过 JSON 过滤元素

java - 如何在java中读取嵌套的非数组JSON?

javascript - 即使调用了 React 组件方法,expect(...).toHaveBeenCalled() 也会失败

javascript - 如何将 $.map 与 Object.keys 函数一起使用来从为 Object.keys 给出的数组中获取第一个值?

c++ - 允许快速重用任意元素的固定长度数组数据结构? C++

java - 如何将 Content-Length 添加到 JAXRS