从异步函数获取返回的数据

时间:2018-12-16 22:40:40

标签: javascript

使用以下异步功能,我从Firebase Firestore实例获取数据:

export async function getSomething(db, id) {
  db.collection('someting').doc(id).get().then((doc) => {
    if (doc.exists) {
      return doc.data();
    }
    throw new Error('No such document!');
  }).catch((error) => {
    throw new Error('err', error);
  });
}

我这样调用此函数:

getSomething(db, this.id).then((data) => {
  console.log(data); // data is empty here
}).catch((err) => {
  console.log(err);
});

问题在于,data函数中的then上为空。 如何从getSomething函数中获取数据?返回数据还不够吗?

1 个答案:

答案 0 :(得分:3)

如果您想从函数中获取一个值,那么您需要从中返回一些东西。

您有很多return语句,但是它们都在回调函数中。

您自己需要一个getSomething。

return db.collection('someting').doc(id).get().then((doc) => {