小编use*_*178的帖子

当承诺所有视频加载时的JavaScript

我试图用更好的$ .when承诺来重构一段糟糕的代码.我需要的是等待页面中的所有视频都加载,然后找到最长的视频.

旧代码是:

$.each($('video'), function() {
    this.addEventListener('loadedmetadata', function() {
        init_timer();
    });
});


var num_videos = $('body video').length;
var video_loaded = 0;

function init_timer() {

    video_loaded++;
    if(video_loaded >= num_videos) {
        console.log(getMaxVideoLenght());
    }   
}
Run Code Online (Sandbox Code Playgroud)

新的是:

$.when( $('video').on('loadedmetadata') )
.done(function() {
    console.log(getMaxVideoLenght());
});
Run Code Online (Sandbox Code Playgroud)

旧版本可以工作但是在新代码中,console.log打印"0"因为视频尚未加载(即使已经完成了instad).

javascript jquery promise

0
推荐指数
1
解决办法
89
查看次数

标签 统计

javascript ×1

jquery ×1

promise ×1