Web应用程序页面包含两个大组件,它们在完全呈现时会调用回调.
问题是在两个组件完全呈现后调用函数.
这可以通过使用超时和轮询一些变量来解决,但我想应该有更好的方法.
让我们说,我有这样的:
function callMeAfterBothRendered() {...};
libA = libraryA($('.comp1'), {"rendered": function () {...}});
libB = libraryB($('.comp2'), {"rendered": function () {...}});
Run Code Online (Sandbox Code Playgroud)
我已经找到了链接承诺的一些材料,但不太确定如何应用于这种情况?
一个复杂的问题是,实际上这些库不是直接在同一个地方调用的(如上面简单示出的),而是在适配器"类"中更深层次的一些初始化方法中.
什么可以是这个的好解决方案,也可以很容易地推广到3个组件?
承诺将是这里最好的方式.
function callMeAfterBothRendered() {...};
Promise.all([
new Promise((resolve) => libraryA($('.comp1'), {"rendered": resolve })),
new Promise((resolve) => libraryB($('.comp2'), {"rendered": resolve }))
]).then(callMeAfterBothRendered);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
47 次 |
最近记录: |