JS - Невозможно вернуть объект, возвращенный базой данных (используя Firebase Firestore) [дубликат]

То, что я думаю, что он только хочет знать положения X / Y курсора, чем то, почему этот сложный ответ.

// Getting 'Info' div in js hands
var info = document.getElementById('info');

// Creating function that will tell the position of cursor
// PageX and PageY will getting position values and show them in P
function tellPos(p){
  info.innerHTML = 'Position X : ' + p.pageX + '<br />Position Y : ' + p.pageY;
}
addEventListener('mousemove', tellPos, false);
* {
  padding: 0:
  margin: 0;
  /*transition: 0.2s all ease;*/
  }
#info {
  position: absolute;
  top: 10px;
  right: 10px;
  background-color: black;
  color: white;
  padding: 25px 50px;
}
<!DOCTYPE html>
<html>
  
  <body>
    <div id='info'></div>
        </body>
  </html>

0
задан Doug Stevenson 15 January 2019 в 22:31
поделиться

1 ответ

В отличие от python, API JavaScript все асинхронные. Когда вы звоните get(), он немедленно возвращается с обещанием, которое разрешается, когда работа завершена. then() также возвращает обещание, как и catch(). Вы возвращаете name прежде, чем он когда-либо получит значение от обратного вызова, что происходит через некоторое время.

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

По сути, вам нужно больше познакомиться с соглашениями, которые JavaScript использует для работы с асинхронной работой и обещаниями.

0
ответ дан Doug Stevenson 15 January 2019 в 22:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: