Json из Fetch API печатает неопределенно? - PullRequest
0 голосов
/ 23 марта 2019

Попытка извлечь из API в JS, и мой возвращенный JSON возвращает неопределенный? И да, это действительно JSON, хотя console.loging данные показывают мне неопределенным?

function getVideos(playlistId) {
    console.log(
        getJsonResponse(composeArguments(API_RESOURCE, API_KEY, playlistId))
    );
}


function composeArguments(apiResource, apiKey, playlistId, maxResults = 50) {
    return (
        apiResource +
        "?key=" +
        apiKey +
        "&part=snippet&playlistId=" +
        playlistId +
        "&maxResults=" +
        maxResults);
}

function getJsonResponse(url) {
    fetch(url).then((response) => {
        if (response.status !== 200) {
            console.log('Looks like there was a problem. Status Code: ' + response.status);
            return;
        }

        response.json().then((data) => {
            return data;
        });
    }).catch(function (err) {
        console.log('Fetch Error :-S', err);
    });

}




getVideos(PLAYLIST_ID);

Ответы [ 2 ]

1 голос
/ 23 марта 2019

Функция в функции fetch, тогда фактически не имеет возвращаемого значения. Так что console.log(getJsonResponse... журналы не определены. getJsonResponse должен что-то вернуть (обещание или значение).

Вместо response.json().then(data => { return data; }), просто return response.json();

0 голосов
/ 23 марта 2019

попробуйте добавить возврат до response.json (). Отдых кажется нормальным. Вызываемая функция должна возвращать некоторое значение.

`function getJsonResponse(url) {
   return fetch(url).then((response) => {
     if (response.status !== 200) {
        console.log('Looks like there was a problem. Status Code: ' + response.status);
        return 'Looks like there was a problem.';
    }

    return response.json().then((data) => {
        return data;
    });
}).catch(function (err) {
    console.log('Fetch Error :-S', err);
});

} `

...