Неизвестное состояние гонки: onError иногда запускается - YouTube Iframe API - PullRequest
3 голосов
/ 26 мая 2019

Вот сценарий для демонстрации

Повторный запуск скрипта несколько раз, вы увидите следующее сообщение ? Yay we got the error 150 появляется только иногда.Я ожидаю, что ошибка будет появляться каждый раз.

Я немедленно загружаю YT API componentDidMount

function loadYTIframeAPI() {
  var tag = document.createElement("script");
  tag.src = "//www.youtube.com/iframe_api";
  var firstScriptTag = document.getElementsByTagName("script")[0];
  firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
}

Я создаю экземпляр проигрывателя после завершения запроса ajax

new window.YT.Player(`player${id}`, {
  events: {
    onReady: e => {
      console.log("onReady", e.data, e.target.a.id);
      this.setState({ readyData: "ready" });
      if (index === 0) {
        console.log("play");
        e.target.playVideo();
      }
    },
    onError: e => {
      // this should fire every time but only fires sometimes ?
      console.log("onError", e.data, id);
      this.setState({ errorData: e.data.toString() });
    }
  }
});

Я отображаю видео iframe с

<iframe id="player512347" src="https://www.youtube.com/embed/AmtOraYA4p0?enablejsapi=1&origin=https://fiddle.jshell.net&autoplay=1" frameborder="0"></iframe>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...