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

Javascript 从异步函数获取返回的数据,javascript,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((

使用以下异步函数,我从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);
});
问题是,来自
数据上的
then
函数为空。
如何从
getSomething
函数获取数据?返回数据还不够吗?

如果要从函数返回值,则需要从函数返回一些内容

您有许多return语句,但它们都在回调中

你需要一个来获得一些东西

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

如果你想从函数中得到一个值,那么你需要从函数中返回一些东西

您有许多return语句,但它们都在回调中

你需要一个来获得一些东西

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

1) 您的函数没有理由是
异步的
,因为您没有使用
等待
。2)
return db.collection…
为什么要使用异步函数
await
操作符没有用处吗?可能重复1)由于您没有使用
await
,所以函数没有理由是
async
。2)
return db.collection…
为什么要使用异步函数
await
操作符没有用吗?可能重复