フォローアップと、おそらく愚かな質問ですが:プラグインスクリプトを許可する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関数があるのかどうか疑問に思いました。
