小编sni*_*bbo的帖子

等待 Firebase 函数中的多个 Promise

我试图弄清楚如何在函数结束之前等待多个承诺的执行。

本质上,这就是我尝试做的:

  • 如果用户删除他/她的帐户,我想清理与他相关的所有数据
  • 直接数据可以删除
  • 如果用户是某个组的一部分,并且其他用户也在该组中,则该组仍然存在;否则该群组也将被删除

这是我到目前为止所尝试的:

A)主要功能(启动第一级承诺):

export function cleanUpAllData(user) {
  const userId = user.uid;
  const promises = [];
  promises.push(deleteCategoriesData(userId)); // this works fine
  promises.push(deleteUserAndGroupData(userId)); // this one has other promises which still run when Promise.all() is finished
  Promise.all(promises)
    .then(() => {
      return "ok"; // this works so far, but not all promises are resolved
    })
    .catch(errPromises => {
      console.log("an error occured during the processing of main promises");
      console.log(errPromises, errPromises.code);
      return "error";
    })
}
Run Code Online (Sandbox Code Playgroud)

B)deleteUserAndGroupData 函数(另一个 Promise 工作正常):在用户数据中找到的每个组启动另一个级别的 Promise,并且还触发第三个级别的 Promise(deleteGroup) …

promise firebase google-cloud-functions google-cloud-firestore

4
推荐指数
1
解决办法
1805
查看次数