我正在尝试从异步函数返回布尔值,但是以undefined的形式出现。

checkIfEmptyDb = async => {
    var ref = firebase.database().ref("dynamicDb");
    ref.once("value").then(snapshot => {
      const a = snapshot.exists();
      console.log(a); // false
      return a;
    });
  };

  getRandomWordFromDb = async () => {
    let moreWords = await this.checkIfEmptyDb();
    console.log("moreWords", moreWords); //UNDEFINED


到目前为止,我的解决方案是在checkIfEmptyDb函数中设置react应用的状态,然后可以在getRandomWordFromDb中调用它。

提前致谢!

最佳答案

您需要返回承诺的价值:

  checkIfEmptyDb = async => {
    var ref = firebase.database().ref("dynamicDb");
    return ref.once("value").then(snapshot => {
      const a = snapshot.exists();
      console.log(a); // false
      return a;
    });
  };

关于javascript - 异步函数返回 undefined variable ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60914045/

10-16 10:03