Как получить значение запроса на получение в Javascript

Я пытаюсь получить данные в объекте javascript. Объект был сгенерирован из запроса на получение к API, и в сетевой консоли я ясно вижу ответ как {"число":"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.info(x[key])
        }

попытаться напечатать часть "_v", но я не могу перечислить часть "_v" массива/объекта.

Шаги для получения такого результата:

.vue файл, который вызывает функцию

export default {
    mounted() {

    var x=this.connectionsAlive()
    console.info(x)
    for (var property in x) {
        console.info(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

Но когда я пытаюсь распечатать его, я получаю результат в верхней части этого поста.

Я явно что-то упускаю или просто знаю о структуре. Если у кого-то есть идея, я с удовольствием приму помощь, спасибо.

Можете ли вы показать нам, как вы делаете этот запрос на получение? Вы делаете запрос на получение в Node.js или Vue.js?

josephting 10.04.2019 09:25

да, конечно, я скопирую это, это запрос vue.js к loopback API

Quentin_otd 10.04.2019 09:26

У вас есть ошибки? Публикация также может быть полезна, я попробовал ваш код, и он работает для того, что вы вставили, я думаю, нам нужно больше информации, как сказал josefting.

tarabor 10.04.2019 09:28

я вставлю результат итерации

Quentin_otd 10.04.2019 09:29

Кажется, что вы берете на вход пустой объект. Вы проверили тело запроса/ответа? Пожалуйста, чтобы уточнить ваш вопрос, скопируйте весь код, в котором вы выполняете операцию, а также с запросом и ответом на/с сервера.

tarabor 10.04.2019 09:37

Я попытался сделать это более понятным, скажите мне, если вам что-то нужно

Quentin_otd 10.04.2019 09:47
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
6
516
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как

connectionsAlive
method does an http calls to the server, it is an asynchronous operation.
You should append a .then() to this.connectionsAlive()
this.connectionsAlive().then(x => {
    console.info(x)
    for (var property in x) {
        console.info(property)
    }
})

Я не пробовал, но надеюсь, что это поможет вам определить проблему. Дополнительную информацию об обещаниях можно найти здесь: https://hackernoon.com/understanding-promises-in-javascript-13d99df067c1

Когда я попытался добавить «возврат», я получил синтаксическую ошибку, но в остальном я попытался использовать .then, и все сработало. основываясь на том, что вы сказали, я написал это: this.connectionsAlive().then(x => { console.info(x.data.number) }) И все работает нормально, спасибо!

Quentin_otd 10.04.2019 10:06

Хорошо, я отредактирую ответ, чтобы он оставался правильным. Пожалуйста!

tarabor 10.04.2019 10:10

Другие вопросы по теме