一个后续问题,也许是个愚蠢的问题:我正在尝试加载多个脚本,因为 Mediaelement 允许插件脚本。我想确保所有脚本都加载完毕后再返回 Promise。
我尝试通过循环遍历脚本源的常量,然后创建一个 Promise 数组,再使用 Promise.all() 来初始化播放器,但当我这样做时,我收到了一个错误,说找不到 mejs,我认为这是 Mediaelement-and-player 中的命名空间或用于调用不同函数的某个东西。
let scripts_loaded = [];
MEDIA_ELEMENT_SCRIPTS.forEach(function (src, index){
scripts_loaded[index] = loadScript(src);
});
Promise.all(scripts_loaded).then(() => {
audioplayers.forEach(function (el) {
new MediaElementPlayer(el, MEDIA_ELEMENT_CONFIG);
});
});
但是,如果我手动链接它们,它似乎可以工作,如下所示:
loadScript(MEDIA_ELEMENT_SRC).then(() => {
loadScript(MEDIA_ELEMENT_SPEED_SRC).then(() => {
loadScript(MEDIA_ELEMENT_SKIP_BACK_SRC).then(() => {
loadScript(MEDIA_ELEMENT_JUMP_FORWARD_SRC).then(() => {
audioplayers.forEach(function (el) {
new MediaElementPlayer(el, MEDIA_ELEMENT_CONFIG);
});
});
});
});
});
在这种情况下,我只使用少量脚本,所以我只是手动输入了所有脚本,我只是好奇我是否遗漏了关于 Promise.all() 函数的明显内容,或者是否有 Discourse 函数允许我从数组加载多个脚本。
