@rodgi

"TypeError: Cannot read property '0' of undefined", что делать?

Здесь есть уже такой вопрос, но там отсутствует правильный ответ. Суть вопроса:
Хочу сделать счетчик подписчиков на ютубе. Вот код:
const node-fetch = require("node-fetch")

let api_key = "123123123123123123123"
let channel_id = "123123123123123"

const livesubs = () => {
    let response = fetch(`https://www.googleapis.com/youtube/v3/channels?part=statistics&id=${channel_id}&key=${api_key}`)
    .then(function (response) {
        updateView(response.items[0].statistics.subscriberCount);
    }).catch(err => console.log(err))
    .then(response => response.json())
  
    const updateView = (subscribersCount) => {
        counterValue.innerHTML = subscribersCount.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ".");
    }
    function app() {
        livesubs();
        window.setInterval(livesubs, 5000);
        console.log(response.items)
    }}
  • Вопрос задан
  • 124 просмотра
Решения вопроса 1
Aetae
@Aetae Куратор тега JavaScript
Тлен
Не пытаться прочитать свойство '0' у undefined значения, очевидно. В ошибке всё написано.
Смотрите где вы читаете свойство с ключом '0'. Нашли?
Теперь смотрите у какого объекта вы пытаетесь прочесть это свойство. Нашли?
Вот этот объект - отсутствует(undefined). А уж разобраться почему он отсутствует - ваша задача.

spoiler
response.items[0]
items отсутствует в response
А отсутствует он там потому что json() вы получаете почему-то уже после того, как пытаетесь получить items из сырого необработанного Response.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы