Async / Await func не ждет console.log, это ответ - PullRequest
0 голосов
/ 15 ноября 2018

Я пытаюсь создать асинхронную функцию и сохранить ее ответ в переменной, затем console.log этой переменной, но это console.log, заполняющий ответ до завершения работы асинхронной функции.

import axios from 'axios';

async function getItems() {
  const response = await axios.get(SOME_URL);
  console.log('done', response);
  return response;
}

const items = getItems();
console.log('items: ', items);

Я ожидаю, что журналы будут выглядеть так:

// Expected result
done: {...result...}
items: {...items...}

Но что я на самом деле получаю, это:

// ACTUAL result
items: Promise {<pending>}
done: {...result...}

Я хочу подождать, пока запрос не будет выполнен, чтобы продолжить ниже моего звонка на getItems.

Чего мне не хватает?

1 Ответ

0 голосов
/ 15 ноября 2018

Поскольку "getItems" является асинхронным вызовом, вы получите результат в ".then", как показано ниже

import axios from 'axios';

async function getItems() {
  const response = await axios.get(SOME_URL);
  console.log('done', response);
  return response;
}

getItems().then(items => console.log('items: ', items))
...