Asyn c функция в следующем - PullRequest
0 голосов
/ 26 апреля 2020

Добрый день! Я хочу отправить клиентский ip из внешнего интерфейса в следующем. js в бэкэнд

Для получения ip я использую эту функцию:

    async function getip() {
        var c = await publicIp.v4();
        return c;
    }
    export default getip;

и отправляю с топором ios post.

    getip().then(ip => {
       axios.post('/, {

                body: ip

            }). then((res) => {}...}

сервер показывает ip в консоли, но

var IP = req.body;
  console.log(IP); // ***undefined***

1 Ответ

0 голосов
/ 26 апреля 2020

так что дело в том, что вы ожидаете строку, вероятно, но функция asyn c дает вам обещание строки, поскольку имя подразумевает просто обещание.

Если и когда это обещание разрешено только тогда вы можете использовать содержащиеся данные.

function getIpSomehow() {
  return new Promise(res => {
      setTimeout(() => {
          res("127.0.0.1")
        },500)}
      )
  }
  async function getIp() {
    //var c = await publicIp.v4();
    const c = await getIpSomehow();
    return c;
  }

  getIp().then(ip => {
    //all axios stuff in here
    console.log(ip)
  })
  //however as you may see getIp function is quite useless so we could as well do 
  // getIpSomehow().then(...)
...