0

ID3 タグ リーダー ライブラリhttps://github.com/43081j/id3を使用しています& 呼び出すサンプル関数はこの形式です...

id3(this.files[0], function(err, tags) {
  console.log(err, tags);
});

ほとんどのファイルでうまく機能しますが、時々このようなエラーが発生します

Uncaught URIError: URI malformed

この関数を try...catch でラップして、このようなエラーをキャッチしようとしました

try {
  id3(file, function(err, tags) {
    if (err) throw err;
    console.log('tags .. ' + tags);
  });
}
catch (e) {
  console.log('caught it!');
}

しかし実際には、エラーは依然として捕捉されずに残っています。

関数が非同期であるという事実に関係しているのではないかと思いますが、これを防ぎ、エラーをキャッチする方法を理解するのに本当に苦労しています。

最終的には、次のように関数全体を promise でラップしたいと考えています。

return new Promise(function(resolve, reject) {
  try {
    id3(file, function(err, tags) {
      if(err) throw err
      resolve(tags);
    });
  }
  catch (err) {
    reject('blank');
  }
}

しかし、何を試しても、エラーで reject メソッドが呼び出されることはありません。

ありがとう!

4

0 に答える 0