如何检索函数中变量的内容?

时间:2018-03-09 11:24:33

标签: javascript reactjs firebase react-native firebase-realtime-database

我创建了这个函数:

apt-get install mysql-server

然后我想在这个之外使用变量var IDOfUserToKill = 'tralala'; export function getIDOfUserToKill(userID, gameID) { let path = '/games/' + gameID + '/users/' + userID; fb.database().ref(path).on('value', snapshot => { IDOfUserToKill = ''; if (snapshot.val()) { IDOfUserToKill = snapshot.val().userToKill; console.log(IDOfUserToKill); // return the good ID } }); } userID = IDOfUserToKill; // return "tralala" and not the good ID 。因为如果我使用IDOfUserToKill,它将返回在函数(tralala)之前定义的值而不是ID。

如何检索变量的内容? (我使用React Native)。

1 个答案:

答案 0 :(得分:1)

此功能:

 fb.database().ref(path).on('value', snapshot => {
  IDOfUserToKill = '';

  if (snapshot.val()) {
    IDOfUserToKill = snapshot.val().userToKill;
    console.log(IDOfUserToKill); // return the good ID
  }
});

是异步的,这意味着它在完成之前会转移到另一个任务。

这就是为什么在on()内部获得数据库中的id,而在外部,userID = IDOfUserToKill;,您获得值'tralala'

要了解有关异步检查的更多信息,请执行以下操作:

https://medium.com/google-developers/why-are-firebase-apis-asynchronous-callbacks-promises-tasks-e037a6654a93