Асинхронный объект Promise as Callback - PullRequest
0 голосов
/ 27 октября 2019

почему я становлюсь, когда запускаю эту функцию в качестве обратного вызова [обещание объекта]? я использую инфраструктуру Ts3 nodejs от Miltivit4min ( Github )

здесь некоторый код, который я пробовал (возвращаемое значение = [обещание объекта])

async function getChannelName(cid) {

   await teamspeak.getChannelByID(cid).then(data => {

    return data.name;

   });

};

как я могу конвертироватьэто значение в строку со значением типа "Мой крутой канал"

наилучшими пожеланиями

1 Ответ

2 голосов
/ 27 октября 2019

Функция async всегда возвращает Promise по своему замыслу, а ваша функция getChannelName не имеет оператора return, поэтому обещание никогда не разрешается. Также вы смешиваете некоторые синтаксисы await и .then(), вам нужен только один из них.

async function getChannelName(cid) {
   const data = await teamspeak.getChannelByID(cid);
   return data.name;
};


const name = await getChannelName(123); // name has the channel name
...