Возврат объекта из функции asyn c - PullRequest
0 голосов
/ 17 марта 2020

Я пробовал несколько способов вернуть объект из функции asyn c. Я совершенно новичок в JavaScript и не могу понять, почему это не работает.

Функция использует API для возврата некоторых финансовых данных, затем после получения ответа отображает возвращенный объект. в другой объект, который я хочу вернуть.

Если я console.log объекта, все в порядке. Но наличие большого количества номеров в моем терминале не совсем то, чего я надеюсь достичь.

Я пробовал следующее:

let someObject = fetchData(url);
console.log(someObject)

Дает мне "Обещание {}"


Еще одна попытка:

const returnFetchData = async() => {
    const objectToReturn = await fetchData(url);
    return objectToReturn;
}


console.log(returnFetchData);

Дает мне "[AsyncFunction: returnFetchData]"

Вот мой код:

async function fetchData(urlLink){
const res = await fetch(urlLink);
const out = await res.json();
const timeSeries = out['Time Series (Daily)'];

let returnObject = {
    dates: [],
    adjustedClose: []
}


Object.entries(timeSeries).forEach(
    ([key, value]) => {
    returnObject.dates.push(key)
    returnObject.adjustedClose.push(value['5. adjusted close'])
    }
);


return returnObject;

}

Редактировать: я хочу вернуть массив из returnObjects.adjustedClose.

Все решения пока возвращают обещание. Этот массив должен использоваться в другой функции. Должен ли я для этого отобразить его в этой функции?

1 Ответ

0 голосов
/ 17 марта 2020

В вашем коде

const returnFetchData = async() => {
    const objectToReturn = await fetchData(url);
    return objectToReturn;
}

console.log(returnFetchData); 

Поменяйте console.log(returnFetchData); с console.log(await returnFetchData());

Вы должны дождаться асинхронной c функции .

...