@MrZillaGold

Как выводить ответ не в консоль, а в строку?

vk.updates.hear(/^(?:rcon)\s?([^]+)?/i, (message) => { 
  return rcon.connect().then(() => {
  return rcon.send(`${message.$match[1]}`); 
}).then(res => {
  console.log(res);
}).then(() => {
  return message.send(`ОТВЕТ СЮДА`);
  return rcon.disconnect();
  })
});


Мне необходимо ответ от return rcon.send выводить в return message.send
  • Вопрос задан
  • 214 просмотров
Решения вопроса 2
@inzeppelin
Я тоже ничего не понял, но думаю вот так

vk.updates.hear(/^(?:rcon)\s?([^]+)?/i, (message) => {
  return rcon.connect()
    .then(() => {
      return rcon.send(`${message.$match[1]}`);
    })
    .then((res) => {
      console.log(res);
      // После консоль лога сделать return
      return res;
    })
    .then((res) => {
      // Два return'a работать не будут. Нужно оставить что-то одно
      message.send(res);
      return rcon.disconnect();
    });
});


Ну или еще лучше:

vk.updates.hear(/^(?:rcon)\s?([^]+)?/i, (message) => {
  return rcon.connect()
    .then(() => rcon.send(`${message.$match[1]}`))
    .then((res) => {
      console.log(res);
      message.send(res);
      return rcon.disconnect();
    });
});
Ответ написан
Комментировать
Negezor
@Negezor
Senior Shaurma Developer
Это может сделать лучше с async/await
vk.updates.hear(/^(?:rcon)\s?([^]+)?/i, async (message) => { 
    await rcon.connect();

    const response = await rcon.send(`${message.$match[1]}`);

    return Promise.all([
        message.send(response),
        rcon.disconnect()
    ]);
});
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
aM-aM
@aM-aM
Люблю js
Возможно я не понял вопроса, но может так поможет.
let cachedMessage = '';
vk.updates.hear(/^(?:rcon)\s?([^]+)?/i, (message) => {
  cachedMessage = message;
  return rcon.connect().then(() => {
  return rcon.send(`${message.$match[1]}`); 
}).then(res => {
  console.log(res);
}).then(() => {
  return message.send(cachedMessage);
  return rcon.disconnect();
  })
});
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы