Uncaught SyntaxError: await действителен только в асинхронной функции в асинхронной функции - PullRequest
0 голосов
/ 25 февраля 2019

getRevenueByID функция вызывается в асинхронной функции, но получает Uncaught SyntaxError.Что я здесь не так делаю?

(async() =>{

try {
    response = await fetch(mainURL);
    data = await response.json();

    console.log(data);
    console.log(data.results[0].title);

    ID_Array = [].concat.apply([], data.results.map(d => d.id))
    console.log(ID_Array);


    getRevenueByID(ID_Array);
} catch (error) {
    console.log(error);
}
})();

getRevenueByID = (arr => {
    for (let i = 0; i < arr.length; i++){
        console.log("ID is: ", arr[i]);
        getRevenueURL = await fetch('someurl' + arr[i] + '?api_key=YOUR_KEY&language=en-US');
        console.log(getRevenueURL);
        // let data = await getRevenueURL.json();
        // console.log(data);

    }
});

1 Ответ

0 голосов
/ 25 февраля 2019

getRevenueByID сама по себе не является асинхронной функцией.

"await действителен только в асинхронной функции" означает "непосредственно в" not ", вызываемом откуда-то из стека вызовов".

Так сделайте его асинхронным:

getRevenueByID = async (arr) => {
    // ...
};

А потом ждите его там, где вы его называете:

await getRevenueByID(ID_Array);
...