【发布时间】:2016-01-05 11:47:50
【问题描述】:
我正在使用 YouTube iframe api 加载一个视频,然后我可以对其执行操作。
我正在使用 browserify 来创建模块化行为,并正在使用 JS 模块模式来分解我的部分代码。
当我启动createYT 函数时,我使用YouTubeIframeLoader 在其回调中创建YT.Player 的实例。
我想将YT.Player 分配给我可以在模块的其他函数中访问的变量。这是我到目前为止所拥有的
const videos = {
init: function() {
this.loadYT();
this.changeVid();
},
loadYT: function() {
YouTubeIframeLoader.load(function(YT) {
var player = new YT.Player('video-placeholder', {
height: '390',
width: '640',
videoId: 'fObfRDB0JQw'
});
});
},
changeVid: function() {
// access player var to perform methods on YT.Player instance
}
};
export default videos;
【问题讨论】:
-
除了现有的答案,别忘了
YouTubeIframeLoader.load是一个回调,所以你可能无法调用loadYT和changeVid相继。在此处使用 Promise -
嗯,这很有道理,使用这种模式实现承诺的最佳方式是什么?
标签: javascript youtube-api ecmascript-6 module-pattern youtube-iframe-api