Javascript 在firebase中使用async/await时,是否必须使用.then

Javascript 在firebase中使用async/await时,是否必须使用.then,javascript,firebase,async-await,Javascript,Firebase,Async Await,正如标题所说,我是否需要使用.然后在异步/等待函数中使用。这两者之间的有效途径是什么 setPersonList = async ()=> { const personList = []; await this.firestoreCollection .get() .then(result => { personList = { ...result.data }; }); return personList ; }; 或 一般来说,将async/a

正如标题所说,我是否需要使用.然后在异步/等待函数中使用。这两者之间的有效途径是什么

setPersonList = async ()=> {
  const personList = [];
  await this.firestoreCollection
  .get()
  .then(result => {
    personList  = { ...result.data };
  });
  return personList ;
};


一般来说,将async/await与then/catch链结合在一起并不是一个好主意。async/await的全部要点是允许编写更可读的代码,而不涉及使用then/catch嵌套回调


您的第二个选项是更加惯用的JavaScript。

如果第二个选项更好,我应该把错误捕捉放在哪里?@Merndev您只需要用
try/catch
来结束通话,除非我没有正确理解您的问题
setPersonList = async () => {
  const personList = [];
  const snapshot = await this.firestoreCollection
  .get()
  snapshot.docs.forEach((doc) => {
      personList .push(doc.data());
  });

  return personList ;
};