Когда я пытаюсь получить доступ к ключу объекта javascript, он говорит мне, что он не определен, даже если он существует? - PullRequest
0 голосов
/ 30 сентября 2018

Итак, моя функция вызывается следующим образом:

function* makeRequest(payload) {
   return new Promise(function(resolve) {
      request(payload,
        function (error, response, body) {
            console.log('body', body);
            console.log('body.success', body.success);
            resolve(body);
        });
   });
}

вывод console.log('body', body); следующий:

{ "success": true, "challenge_ts": "2018-09-29T21:09:13Z", "hostname": "localhost" }

так body явно содержит объект, который должен быть доступен.Тем не менее, при попытке получить доступ к body.success все, что я получаю, это undefined ... какие-либо идеи о том, почему это может иметь место?

1 Ответ

0 голосов
/ 30 сентября 2018

Итак, получается, что тело ответа в библиотеке запросов может быть строкой.Я смог подтвердить, что это строка, используя метод, рекомендованный @Bergi для console.log (typeof body).

Таким образом, решение состоит в том, чтобы установить body = JSON.parse(body);, чтобы проанализировать строковый объект обратно вфактический объект.

...