Задать вопрос

Как получить статус трансляции через requestify?

Поробовал получить таким образом, но не доходит даже до проверки.
Пробовал через молуот requestify но я походу где-то ошибся

const requestify = require('requestify'); 
var STREAMER_ID = 's1rozha';
var checkStreamUrl = 'https://api.twitch.tv/kraken/streams/'+STREAMER_ID+'?client_id=ott641ae4i3mq3vz86vkwm9qzj3wobs';

function checkStream() {
    requestify.get(checkStreamUrl).then(function(response) {     
        if(response.getBody().stream === null) {
            isStreamOnline = false;
			console.log("Status: Offline");
        }
        else {
            if(typeof(isStreamOnline) !== 'undefined' && !isStreamOnline) {
                console.log("Status: Online");
            }
            isStreamOnline = true;
        }     
    });
}
  • Вопрос задан
  • 287 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
0xD34F
@0xD34F
Ваш код отлично работает. В смысле - ошибок нет, запрос успешно выполняется.

"Не доходит до проверки" - имеется в виду, что ни один из console.log не отрабатывает? Ну так это неудивительно - не вижу, чтобы переменная isStreamOnline объявлялась.

Получается так: данные успешно получены, условие stream === null оказывается ложным (проехали мимо первого console.log) - идём в else, там проверка на typeof isStreamOnline !== 'undefined' тоже оказывается ложной (проехали мимо второго console.log) - т.к. переменная не объявлена, стало быть она всё-таки undefined. Ну и после этого isStreamOnline устанавливается в true.

При повторном вызове checkStream - снова stream не null, затем проверка typeof'а наконец даёт положительный результат, но вторая часть условия (!isStreamOnline) оказывается ложной, т.к. isStreamOnline уже true - снова проезжаем мимо console.log.

Короче, добавьте объявление переменной, что-то вроде var isStreamOnline = false;, а проверку typeof на 'undefined' - уберите, достаточно одного !isStreamOnline.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы