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();
Спасибо за прочтение .
Я надеюсь, что вы получили некоторую помощь с этими случаями.
Счастливого обучения!