簡體   English   中英

將異步 function 的結果保存在變量中

[英]save result of an async function in a variable

我正在使用異步 function 從 firebase 中的集合中獲取數據:`

let teste = async function getDados(db)
{
  const snapshot = await db.collection('place').doc('House').collection('user').get();
  snapshot.forEach((key) => {
  console.log(key.id, '=>', key.data());
});
return snapshot
}

console.log("test", teste)

但是,當顯示變量時,結果是:

測試 [AsyncFunction: getDados]

如何將 function 的 console.log 中顯示的結果保存在變量中?

謝謝:最終代碼:

async function getDados(db)
{
  const snapshot = await db.collection('place').doc('House').collection('user').get();
  let results = [];
  snapshot.forEach((key) => {
    results.push(key.id, key.data());
    console.log(key.id, '=>', key.data());  
  });
  return results
}

async function teste2()
{
let teste = await getDados(db);

console.log("test", teste);
}

teste2();

您實際上沒有調用 function。 你可以嘗試類似的東西,

async function getDados(db)
{
  let results = [];
  const snapshot = await db.collection('place').doc('House').collection('user').get();
  snapshot.forEach((key) => {
  results.push(key.id);
  console.log(key.id, '=>', key.data());
});
return results;
}

const teste = await getDados(db);
console.log("results ", teste);

我不確定您的代碼的key.data()部分,所以我只是引用key.id

您將 function getDados存儲在變量teste中,那么如果您使用typeof teste結果將是function 您可以使用teste(db)調用 function getDados ,但是如果要將getDados的返回值存儲在變量teste中,可以使用以下代碼:


async function getDados(db)
{
  const snapshot = await db.collection('place').doc('House').collection('user').get();

  snapshot.forEach((key) => {
    console.log(key.id, '=>', key.data());
  });
  return snapshot
}

let teste = await getDados(db);

console.log("test", teste);

如果您的項目在 v14.3.0 之前的版本上使用支持頂級等待的 Node,請記住在async function 中使用await

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM