首页 > 解决方案 > 如何在 Javascript 中检索 get 请求的值

问题描述

我正在尝试在 javascript 对象中检索数据,该对象是从对 API 的 get 请求生成的,在网络控制台中,我可以清楚地看到响应为 {"number":"141"} 但每当我尝试打印查询的结果我得到这种类型的对象,其中包含我想要的值:

在控制台中:

Object { _c: [], _a: undefined, _s: 0, _d: false, _v: undefined, _h: 0, _n: false }

但是当我花费价值时

{
  "_c": [],
  "_s": 1,
  "_d": true,
  "_v": {
    "data": {
      "number": "141"
    },
    "status": 200,
    "statusText": "OK",
    "headers": {
      "content-type": "application/json; charset=utf-8"
    },
    "config": {
     [...]
}

但每次我尝试时,我似乎无法仅使用 tab ['_v'] 访问该值。我尝试了多种方法,例如:

for (var key in x) {
            console.log(x[key])
        }

尝试打印“_v”部分,但我无法列出数组/对象的“_v”部分。

获得此类结果的步骤:

调用函数的 .vue 文件

export default {
    mounted() {

    var x=this.connectionsAlive()
    console.log(x)
    for (var property in x) {
        console.log(property)
    }
},
methods: {
        ...mapActions({
            connectionsAlive: 'mkt/connectionsAlive',
        })
    }
}

然后它转到一个名为 mkt-module.js 的文件,然后是 mkt-api.js

---mkt-module---
import { connectionsAlive } from '@/api/mkt-api'
export default {
    namespaced: true,
    state: {
        test: '',

    },
    actions: {
        connectionsAlive() {
            const response = connectionsAlive()
            return response

        }
    }
}
----mkt-api----
import axios from 'axios'
import { getAbsoluteUrl } from '@/services/url-service'

export const connectionsAlive = () => (
    axios.get(`/api/DeviceEvents/connectionsAlive`)
)

我得到的响应是:

JSON :
number : 141

但是当我尝试打印它时,我会在这篇文章的顶部得到结果。

我显然错过了一些东西,或者只是对结构的了解。如果有人有想法,我会很乐意接受帮助,谢谢。

标签: javascriptnode.jsvue.js

解决方案


作为

连接活跃
方法对服务器进行http调用,它是一个异步操作。
您应该将 .then() 附加到 this.connectionsAlive()

this.connectionsAlive().then(x => {
    console.log(x)
    for (var property in x) {
        console.log(property)
    }
})

我没有尝试过,但希望它可以帮助您发现问题。您可以在此处找到有关 Promises 的进一步阅读:https ://hackernoon.com/understanding-promises-in-javascript-13d99df067c1


推荐阅读