Получить и опубликовать текст в NodeJS - PullRequest
0 голосов
/ 27 июня 2018

Я пытаюсь получить текст из API, который возвращает только строку текста ( (здесь) ), и у меня возникают проблемы с выбрасыванием этого в ответ. При публикации он выглядит как [object Response], а console.log не показывает текст, который я хочу из него.

Код, который я использую:

fetch('http://taskinoz.com/gdq/api').then(
    function(response) {
      console.log(response);
      throttledSendMessage(channel, response);
      return response;
    })
  .catch(function(error) {
    throttledSendMessage(channel, "An error has occured");
  })

Журнал может быть найден здесь

Спасибо, что посмотрели со мной, не смогли найти решение: /

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Возможно, проблема в асинхронном поведении node.js. Вы можете прочитать больше здесь
Кроме того, я предполагаю, что вы используете этот пакет, чтобы сделать запрос на выборку в node.js.
И предположим, что функция throttledSendMessage является синхронной.

Что касается вашей проблемы, просто попробуйте переписать код, чтобы использовать async / await для более чистого решения.

// We'll use IIFE function
(async () => {
    const fetchResult = await fetch('http://taskinoz.com/gdq/api')
    // Here fetch return the promise, so we need to await it again and parse according to our needs. So, the result code would be this
    const data = await fetchResult.text();
    throttledSendMessage(channel, data);
    return data;
})()
0 голосов
/ 27 июня 2018

Я думаю, что, поскольку fetch возвращает Response, вам нужно вызвать одну из функций на Response, чтобы получить текст тела. Вот пример:

fetch('https://github.com/')
  .then(res => res.text())
  .then(body => console.log(body));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...