Задать вопрос
@SideWest
Python.Новичок

Как сделать функцию для промиса?

В моём коде выходит много запросов к апи вк, через библеотеку request:
const ans = await new Promise((resolve) => {
    request.post({
      url: 'https://api.vk.com/method/execute',
      qs: {
        code: `return [API.account.getProfileInfo(),API.groups.getById({"group_ids": "${SPISOK}" })];`,
        access_token: TOKEN,
        v: V,
      },
    }, (err, response, body) => {
      resolve(body);
    });
  });

Таким образом я получаю в переменную ans ответ, захотел написать функцию для этого дела, но столкнулся с проблемами, ведь функция должна быть асинхронной, сделал вот это:
(async () => {
console.log(reqi('execute',{
  code: `return [API.account.getProfileInfo()];`,
  access_token: TOKEN,
  v: V,
}));
})();
//
async function reqi(method,params) {
  var ans = await new Promise((resolve) => {
    request.post({
      url: `https://api.vk.com/method/${method}`,
      qs: params,
    }, (err, response, body) => {
      resolve(body);
    });
  });
  return await ans
}


Но такая конструкция возвращает promise pending, подскажите, как такую задачу мне реализовать?
  • Вопрос задан
  • 81 просмотр
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 1
dimovich85
@dimovich85 Куратор тега JavaScript
https://u-academy.net/
Создать функцию обычную, которая возвращает промис, а вместо await new Promise вызывать функцию.
function req(...){
return new Promise....
}

......
var ans = await req(..)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы