ytdl-coreを使用してyouTubeビデオのタイトルを印刷する際のシーケンスが間違っています

クラス

私は不和の音楽ボットを持っています。私の問題は、youTubeビデオのタイトルを印刷する際のシーケンスが間違っていることです。結果をテキストチャネルに送信しようとすると、ランダムに送信されるタイトルが表示されますが、期待したものではありません。

async / await関数を使おうとしましたが、それでも機能しません。

function queueNow(message) {
    let arr = queueArr; //array with urls
    if(arr !== undefined && arr.length !== 0) {
        let mes = "```Elm";
        let counterPlaylist = 0;
        if(arr.length != 0) {
            let flag = true;
            arr.forEach(composition => {
                ytdl.getInfo(composition, function(err, info) {
                    if(err === null) {
                        if(info === undefined) {
                            flag = false;
                        }
                        if(flag) {
                            counterPlaylist++;
                            mes += "\n" + counterPlaylist + ") " + info.title;
                        }
                        if(counterPlaylist === arr.length) {
                            mes += "\n```"
                            message.channel.send(mes);
                        }
                    }
                });
            })
        }
    }
}
フアン・スコラーリ

問題は、a内で非同期呼び出しを行うforEachと、それらが行われた順序が必ずしも尊重されないことです。

Promise.all呼び出しの順序を保持する、を使用したリファクタリングの可能な回避策は次のとおりです。

function queueNow(message, arr) {
  if (!arr || !arr.length) return;
  Promise.all(arr.map(composition => ytdl.getInfo(composition)))
    .then(infos => {
      const mes =
        "```Elm" +
        infos.map((info, index) => `\n${index + 1}) ${info.title}`).join("") +
        "\n```";
      message.channel.send(mes);
    })
    .catch(err => {
      console.log(err);
      // Do something with the error
    });
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Discordbotはytdl-coreで音楽を再生しません

分類Dev

nodejs importing with ES6 import , specifically 'ytdl-core-discord'

分類Dev

NodeJS:エラー:モジュール 'ytdl-core'が見つかりません

分類Dev

ES6インポートを使用したnodejsインポート、具体的には「ytdl-core-discord」

分類Dev

エラー:UnhandledPromiseRejectionWarning:TypeError:ytdl.validateURLは関数ではありません

分類Dev

Discord.js ytdlエラー:入力ストリーム:ステータスコード:416

分類Dev

Downloading an audio file with Express API and ytdl

分類Dev

sort()を使用したリストのシーケンスが間違っています

分類Dev

パンダ:csvファイルからデータをインポートする際の列名が間違っています

分類Dev

Node.jsのnpmが間違ったパッケージをインストールしています

分類Dev

Node.jsのnpmが間違ったパッケージをインストールしています

分類Dev

スタイルシートをhtmlにリンクする-何が間違っているのですか?

分類Dev

php my adminのデフォルトのタイムスタンプは、正しいタイムゾーンを使用しても間違っています

分類Dev

スケールが間違っている/「ts」を使用して時系列オブジェクトの時刻を解釈するのが難しい

分類Dev

自作のサブパッケージに自作のPythonクラスをインポートする際にどこが間違っていますか?

分類Dev

マイクロサービスでセッションを使用するのは間違っていますか?

分類Dev

YouTubeのビデオリストAPIからビデオデータをフェッチすると、間違ったデータが表示されます

分類Dev

FFMPEG:WEBMを高速シークとコピーでエンコードすると、ビデオの長さが間違ってしまいます

分類Dev

Spark ScalaでinferSchemaのオプションをtrueとして使用すると、データ型が間違っているのはなぜですか?

分類Dev

この場合、clangが間違っているか、gccが間違っているか、またはその両方が間違っていますか?メンバーポインタでconstnessをキャストします

分類Dev

Pandas / Keras:DataFrameからのデータを使用してKerasモデルをトレーニングします。入力形状が間違っています

分類Dev

JSP ページをローカル MySQL データベースに接続する際の問題: データベース名が間違っています

分類Dev

USerDefaultを使用してデータを保存する際に何が間違っていますか

分類Dev

ボタングループの値を取得する際に何が間違っていますか?

分類Dev

実際の(VM以外の)コンピューターでGRUBを使用しているときに、ビデオを録画したりスクリーンショットを撮ったりする方法はありますか?

分類Dev

LinuxをPCにインストールしようとして燃え尽きてしまった.....私は何が間違っているのですか?

分類Dev

phpを使用してデータをmongodbにプッシュしていますが、構造が間違っています。なぜ0オブジェクトを生成するのですか?

分類Dev

ターミナルを使用して、デスクトップからusr / share / audacious / skinsにファイルをコピーしようとしています。私は何が間違っているのですか?

分類Dev

jQuery-UIをインストールすると、すべてのスタイルシートが欠落します。何を間違えましたか?

Related 関連記事

  1. 1

    Discordbotはytdl-coreで音楽を再生しません

  2. 2

    nodejs importing with ES6 import , specifically 'ytdl-core-discord'

  3. 3

    NodeJS:エラー:モジュール 'ytdl-core'が見つかりません

  4. 4

    ES6インポートを使用したnodejsインポート、具体的には「ytdl-core-discord」

  5. 5

    エラー:UnhandledPromiseRejectionWarning:TypeError:ytdl.validateURLは関数ではありません

  6. 6

    Discord.js ytdlエラー:入力ストリーム:ステータスコード:416

  7. 7

    Downloading an audio file with Express API and ytdl

  8. 8

    sort()を使用したリストのシーケンスが間違っています

  9. 9

    パンダ:csvファイルからデータをインポートする際の列名が間違っています

  10. 10

    Node.jsのnpmが間違ったパッケージをインストールしています

  11. 11

    Node.jsのnpmが間違ったパッケージをインストールしています

  12. 12

    スタイルシートをhtmlにリンクする-何が間違っているのですか?

  13. 13

    php my adminのデフォルトのタイムスタンプは、正しいタイムゾーンを使用しても間違っています

  14. 14

    スケールが間違っている/「ts」を使用して時系列オブジェクトの時刻を解釈するのが難しい

  15. 15

    自作のサブパッケージに自作のPythonクラスをインポートする際にどこが間違っていますか?

  16. 16

    マイクロサービスでセッションを使用するのは間違っていますか?

  17. 17

    YouTubeのビデオリストAPIからビデオデータをフェッチすると、間違ったデータが表示されます

  18. 18

    FFMPEG:WEBMを高速シークとコピーでエンコードすると、ビデオの長さが間違ってしまいます

  19. 19

    Spark ScalaでinferSchemaのオプションをtrueとして使用すると、データ型が間違っているのはなぜですか?

  20. 20

    この場合、clangが間違っているか、gccが間違っているか、またはその両方が間違っていますか?メンバーポインタでconstnessをキャストします

  21. 21

    Pandas / Keras:DataFrameからのデータを使用してKerasモデルをトレーニングします。入力形状が間違っています

  22. 22

    JSP ページをローカル MySQL データベースに接続する際の問題: データベース名が間違っています

  23. 23

    USerDefaultを使用してデータを保存する際に何が間違っていますか

  24. 24

    ボタングループの値を取得する際に何が間違っていますか?

  25. 25

    実際の(VM以外の)コンピューターでGRUBを使用しているときに、ビデオを録画したりスクリーンショットを撮ったりする方法はありますか?

  26. 26

    LinuxをPCにインストールしようとして燃え尽きてしまった.....私は何が間違っているのですか?

  27. 27

    phpを使用してデータをmongodbにプッシュしていますが、構造が間違っています。なぜ0オブジェクトを生成するのですか?

  28. 28

    ターミナルを使用して、デスクトップからusr / share / audacious / skinsにファイルをコピーしようとしています。私は何が間違っているのですか?

  29. 29

    jQuery-UIをインストールすると、すべてのスタイルシートが欠落します。何を間違えましたか?

ホットタグ

アーカイブ