等待Firebase调用的嵌套方法

我是个诺言w弱的人,试图弄清楚如何等待一堆Firebase嵌套调用完成方法。一堆我的意思是大约4。我已经读了很多关于诺言的内容,我对此感到头痛,但我仍然无法弄清。

  handleReactCSV = (data) => {
    // check if data is null
    data.forEach(el => {
      first = el.First ? el.First : null;
      last = el.Last ? el.Last : null;

      this.setState({
        first: first,last: last,},() => {
      this.setMember()

    })
    })
  }

在这里,我循环了一堆数据,我需要this.setMember()中的所有内容来进行解析,然后再继续进行下一个forEach。

export function setMember() {

  let { currentOrganization,first,last,phone,phone2,email,email2,memberSaved,anniversary,address,address2,city,zip,headOfHousehold,status,bday,profilePic } = this.state;

  this.props.firebase.pushMember(this.state.currentOrganization)
  .then(snap => {
      return snap.key
  })
  .then(keyUid => {
    this.props.firebase.db.ref('organization/' + currentOrganization + '/members/' + keyUid ).set(
      {
      first: first,//... other data
    })
    return keyUid
})
.then(memKey => {
  this.setState({
    memberKeyID: memKey,family: {[memKey]: [first,'Head of house']},() => {
    this.props.firebase.getMemberCount(currentOrganization).once('value')
                      .then(count => {
                        if(count.val()) {
                          const countTotal = count.val() + 1;
                          return countTotal;
                        } else {
                          return 1;
                        }
                      })
                      .then(memberCount => {
                          this.props.firebase.setMemberCount(currentOrganization,memberCount)
                          .catch(err => console.error(err))
                      })
  })
})
}

我试图做一个新的Promise并将其包装在this.setMember()上,但是解决方法不起作用。然后我读到您不能在a中放置一个解析,因为它是“自动解析”的。我该如何实现?

bysjlyl 回答:等待Firebase调用的嵌套方法

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2760677.html

大家都在问