Загрузка...

Почему возврашает заначение undefined ?

Тема в разделе Node.js создана пользователем ScamInside 15 сен 2023. 262 просмотра

  1. ScamInside
    ScamInside Автор темы 15 сен 2023 2 5 сен 2021
    не получается вывести данные с функции вне функции, возврашает undefined. Если все то же самое провернуть внутри функции все получается корректно.
    [IMG]
    [IMG]
     
    15 сен 2023 Изменено
  2. нахуя
     
    1. Посмотреть предыдущие комментарии (19)
    2. vtlstolyarov
      нахуя, 21 век на дворе - надо юзать async/await, что-то типа такого

      JS
      async function getIpAddress() {
      try {
      const response = await fetch("https://api.db-ip.com/v2/free/self")
      const data = response.json()
      return data.ipAddress
      }
      catch (error) {
      console.error("Ошибка получения IP адреса:", error)
      }
      }

      getIpAddress().then(ipAddress => console.log(ipAddress))
    3. нахуя
      vtlstolyarov, так я ему 2 варианта кода скинул. Может ему нахуй не сдалась асинхронная функция
    4. vtlstolyarov
      нахуя, Может ты и скинул, но я же не телепат.
  3. eqshka
    eqshka 15 сен 2023 11 14 ноя 2018
    Два блока then могут работать не стабильно или не работать вовсе.
     
    1. Посмотреть предыдущие комментарии (1)
    2. eqshka
      vtlstolyarov, Хуевая оптимизация, на старых версиях не работает, нужно делать проверку респонза в каждом then, чтобы не падал сервер

      Доказал
    3. eqshka
      vtlstolyarov, Единственный плюс это читаемость кода, но в случае если это запрос, хуевая практика использовать цепочку промисов, т.к. сервер может быть не доступен, может вернуть ошибку, а её обработчик тогда надо встраивать в каждый блок then
    4. vtlstolyarov
      eqshka, нихуя ты не доказал, ты какую-то хуйню написал - как ты сделаешь проверку response во втором then, если второй промис это промис на data а не на response?
  4. daz5554
    daz5554 15 сен 2023 i wanna be 169 4 июл 2017
    У тебя внутри синхронной функции асинхронный код
    сделай чтобы функция дожидалась результата, задав её так async function getIp()
    и вызывать её нужно в переменную
    например const result = await getIP()
    console.log(result)
     
    1. Посмотреть предыдущие комментарии (2)
    2. daz5554
      ScamInside, Тебе пишет что асинхронная функция должна вызываться в какой-либо функции, а не не уровне выше, т.е. за её пределами. Из меня объяснятор так себе, но думаю ты понял
    3. ScamInside Автор темы
      daz5554, Да, спасибо.. пока еще не совсем понятно, ведь надо записать значение в переменую вне фукции :/
    4. daz5554
      ScamInside, сделай переменную не константную вне функции, например let result;
      и в функции которую я скинул выше её заполняй т.е. получится result = await getIP();
  5. Denchiks
    Denchiks 26 сен 2023 13 24 ноя 2018
    return перед fetch сделай и await в консоли
     
    26 сен 2023 Изменено
Загрузка...
Top