Hey , you are here означает, что у вас есть вывод как [object Promise], и я уверен, что вы определенно разочаровались в этом выводе. недавно я также получил этот вывод, когда работал над программами async/await.

Вот программа, в которой я получил этот вывод:

Когда я получил этот вывод, я перепробовал все возможности, чтобы исправить этот нежелательный вывод, но безуспешно. Наконец-то провел небольшое исследование в Google, блогах и на разных ресурсах и узнал причину такого вывода.

Перед тем, как узнать этот вывод, вы должны знать, что этот вывод [object Promise] . Этот тип вывода появляется, когда мы отображаем наш вывод в DOM вместо консоли. Но когда вы пытаетесь отобразить тот же вывод в консоли, тот же вывод отображается как обещание вместе с его состоянием и результатом.

И у них обоих есть одна и та же причина для этого вывода.

Давайте перейдем к тому, чтобы узнать причину этого вывода.

Причина в том, что когда мы пытаемся вызвать асинхронную функцию, используя синхронный код (в синхронной функции), происходит этот типвывода.

Позвольте мне объяснить здесь с помощью фрагментов кода:

const fun1 = async()=>{     //--->Asynchronous function
  return new Promise((resolve , reject )=>{
    setTimeout(()=>{
      resolve("Promise is resolved !")
    } , 1000)
  })
}

const calling_fun =() =>{     //--->synchronous function in which the async function is being called
  console.log("Calling function")

  document.querySelector('#demo').innerHTML = fun1()  //-> [object Promise]
}
calling_fun();

В приведенном выше коде мы вызываем асинхронную функцию fun1() в синхронной функции, которой является calling_fun(). Это означает, что синхронный код выполняется построчно, не оставляя времени для асинхронного код (fun1()), чтобы ждать и давать ответ (обещание).

Таким образом, чтобы избежать этого нежелательного вывода, мы сделали call_fun() асинхронной функцией, а также написали await перед функцией fun1(), которая будет ждать, пока fun1 () возвращает обещание, показанное ниже:

const fun1 = async()=>{     //--->
  return new Promise((resolve , reject )=>{
    setTimeout(()=>{
      resolve("Promise is resolved !")
    } , 1000)
  })
}

const calling_fun = async () =>{     //---> we have made a function asynchronous using async keyword
  console.log("Calling function")

  document.querySelector('#demo').innerHTML = await fun1()  //-> O/P : Promise is resolved !
}
calling_fun();

Спасибо за прочтение .

Я надеюсь, что вы получили некоторую помощь с этими случаями.

Счастливого обучения!