私は約束が新しく、node-ytdl-coreを使用している間に2つの問題を抱えています。node-ytdl-core約束オーディオタイトルとファイルのダウンロード
exports.downloadMP3 = function(bot, msg, sSuffix) {
return Promise
.all([
ytdl(sSuffix, {filter : 'audioonly',}).pipe(fs.createWriteStream('audio.mp3')),
promiseTitle(sSuffix)
])
.then(function(results) {msg.channel.sendFile('audio.mp3', results[1], '', '')})
.catch(error => console.error(error));
}
function promiseTitle(sSuffix) {
return new Promise(function (resolve, reject) {
ytdl.getInfo(sSuffix, function(err, info) {
if (err) reject(err);
console.log(info.title);
return resolve(info.title);
});
});
}
私は上記のコードを使用すると、コンソールが正しいタイトルを記録しますが、返されるタイトルは、a25998454d48491.Vの線に沿って列です。その約束が私の希望する価値を返さないということを意味する。
さらに、createWriteStreamはファイルが送信される前に解決されません(sendFile)。ファイルがダウンロードされ、ファイルシステムに正しいサイズ/コンテンツを持っていても、私は0バイトのファイルを取得します。
私の約束どおりに正しい値を返して、どのようにしてcreateWriteStreamを約束するのですか?
ありがとうございます。