【问题标题】:i want to return the value of x from this function , here is the code [duplicate]我想从这个函数返回 x 的值,这里是代码 [重复]
【发布时间】:2020-08-12 09:54:55
【问题描述】:
getUD = (v) => {
    firebase
      .firestore()
      .collection("users")
      .doc(v)
      .get()
      .then((doc) => {
        let x = doc.data().name;
        console.log(x);
      });
    return "x";
  };

【问题讨论】:

  • 您只能返回x的值的承诺,而不是值本身。

标签: javascript reactjs firebase oop


【解决方案1】:

这样试试

getUD = (v) => {
  return firebase
    .firestore()
    .collection("users")
    .doc(v)
    .get()
    .then((doc) => {
      return doc.data().name;
    });
};

【讨论】:

  • @KorenHamra 这是因为 getUD 函数本身是异步的并返回一个承诺。调用时需要使用then()async/await
  • 明白了!谢谢 (;
【解决方案2】:

getUD = async (v) => {
  const doc = await firebase
    .firestore()
    .collection("users")
    .doc(v)
    .get();
  return doc.data().name;
};


getUD = (v) => {
  return firebase
    .firestore()
    .collection("users")
    .doc(v)
    .get()
    .then((doc) => {
      return doc.data().name;
    });
};

您可以简单地使用async/await 或从您那里返回。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-20
    • 1970-01-01
    • 2017-02-11
    • 2015-10-27
    • 2021-09-27
    • 2020-06-17
    • 2021-06-22
    • 2019-03-16
    相关资源
    最近更新 更多