窗口加载未在promise回调中触发

时间:2017-09-26 11:38:27

标签: jquery promise es6-promise

以下是我试图实现的每个基本示例。我有这个在chrome / FF工作,但IE拒绝玩得很好。

somePromiseThatFetchesData.then((data)=>{

    $(document).ready(function(){
        var markup = functionThatGeneratesMarkup(data);
        $('body').html(markup);
    });

    $(window).on('load', function(){
        alert('all images etc from promise loaded finishes loading')
    });

});

我的目标是使用获取的数据填充我的dom,然后等到生成的数据中的资产加载后再触发另一个函数。问题是我的回调中的alert永远不会在IE

中被触发

我正在使用es6-promise polyfill for IE

1 个答案:

答案 0 :(得分:1)

你没有使用好的策略。如果在附加事件处理程序之前load事件已经触发,则处理程序将永远不会执行。

相反,立即附加事件,然后在其中包含您的承诺处理程序:

$(document).ready(function(){
    somePromiseThatFetchesData.then((data)=>{
        var markup = functionThatGeneratesMarkup(data);
        $('body').html(markup);
    });
});

$(window).on('load', function(){
    somePromiseThatFetchesData.then((data)=>{
        alert('all images etc from promise loaded finishes loading')
    });
});