Во-первых, нет необходимости использовать ключевое слово «async» с функциями до тех пор, пока вы не ожидаете внутри него асинхронной функции.
Я сделал некоторые изменения в коде, вы можете попробовать:
function play(message, msg) {
addytb(message, msg[3])
.then((data) => {
//do something with data
})
.catch(err => {
console.log('err is: ', err);
});
}
function addytb(message, url) {
return new Promise((resolve, reject) => {
ytbapi.getVideo(url)
.then(video => {
message.channel.send(`J'ai ajouté ${video.title} à la queue !`);
queue.get(message.guild.id).push({
"url": url,
"type": 'youtube',
"title": video.title
});
resolve("success");
})
.catch((err) => {
message.channel.send(`J'ai pas réussi à ajouter ça à la queue !`);
console.log(err)
reject(err);
});
});
}
и если вы действительно хотите попробовать с async / await:
async function play(message, msg) {
try {
const data = await addytb(message, msg[3]);
//do something with data
} catch (err) {
console.log('err is: ', err);
}
}
function addytb(message, url) {
return new Promise(async (resolve, reject) => {
try {
const video = await ytbapi.getVideo(url);
message.channel.send(`J'ai ajouté ${video.title} à la queue !`);
queue.get(message.guild.id).push({
"url": url,
"type": 'youtube',
"title": video.title
});
resolve("success");
} catch (err) {
message.channel.send(`J'ai pas réussi à ajouter ça à la queue !`);
console.log(err)
reject(err);
}
});
}
ps: вам могут потребоваться некоторые модификации, так как у меня не было возможности попробовать код.
надеюсь, это поможет:)