Оси узла не сохраняют ответ в переменной, но выводят его в консоли - PullRequest
0 голосов
/ 16 декабря 2018

Я делаю API-запрос к NewsAPI.org в узле. Если я просто использую консольный журнал, ответ печатается.Теперь я хочу, чтобы он возвращал его в var 'news', а он не возвращает его.Также я заставил функцию return в 'updatedNews' все еще не работать.

Таким образом, данные возвращаются в журнале консоли, но не сохраняются в 'var'.

var news = 'news';

async function getNews() {
  var responseNews = await axios
    .get(
      "https://newsapi.org/v2/top-headlines?country=us&apiKey=key"
    )
    .then( response =>  news = response.data.articles );
    return responseNews;
}

var updatedNews = getNews()
console.log(news)
console.log(updatedNews)

Ответы [ 2 ]

0 голосов
/ 16 декабря 2018

var updatedNews = getNews()

Здесь вы делаете асинхронный вызов, а в следующей строке вы ожидаете результата.Но здесь асинхронный вызов еще не разрешен.Способ, которым мы можем достичь этого, обновляется ниже.Вот код обновления для того же.

<!DOCTYPE html>
<html>
<script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.18.0/axios.js"></script>

<body>
  <script>
    'use strict';
    var news = ""

    function f() {
      return axios
        .get(
          "https://jsonplaceholder.typicode.com/todos/1"
        )
        .then(response => response.data.title);
    }

    f().then(news => console.log(news));
  </script>
</body>

</html>
0 голосов
/ 16 декабря 2018

Существует множество проблем с вашим кодом ...

  1. Ответ, который возвращается, представляет собой массив объектов, а не строку.
  2. Это не так, как асинхронно/ ждать работы и т. д. и т. д.

Это должно работать:

const axios = require('axios');

async function getNews() {
  const response = await axios.get(
    'https://newsapi.org/v2/top-headlines?country=us&apiKey=key',
  );

  const news = response.data.articles;
  console.log(news);
}

getNews();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...