为了账号安全,请及时绑定邮箱和手机立即绑定

在 forEach 循环中抛出错误对象不会影响链

在 forEach 循环中抛出错误对象不会影响链

胡说叔叔 2023-03-03 16:17:34
我有一个错误...如果某些东西已经存在,我想检查 firebase 的数据库,否则转到错误捕获链。但我找不到错误。const ref = admin.database().ref(`/users/${uid}/programs/${program}/`)    ref.once('value', snap => {      if (snap.val() !== null) {        const registered = Object.values(snap.val());        const kids = Object.keys(registered[0].registered);        kids.forEach(kid => {          if (children.includes(kid)) {            throw new Error('already registered')          }        })      }    }).then(() => { ... set to db不管它发生了什么,然后去赶上。
查看完整描述

1 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

不要在异步回调中抛出错误,就像您传递给once. 仅将它们放入承诺回调中:


const ref = admin.database().ref(`/users/${uid}/programs/${program}/`);

ref.once('value').then(snap => {

//               ^^^^^

  if (snap.val() !== null) {

    const registered = Object.values(snap.val());

    const kids = Object.keys(registered[0].registered);

    kids.forEach(kid => {

      if (children.includes(kid)) {

        throw new Error('already registered')

      }

    })

  }

  // ... set to db

}).catch(err => {

  // ...

});


查看完整回答
反对 回复 2023-03-03
  • 1 回答
  • 0 关注
  • 141 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号