Ionic2 离子2链承诺

Ionic2 离子2链承诺,ionic2,Ionic2,如何使用ionic 2向服务器发送多个请求 我在sqlitedB中有三个离线工作的表。我想在有活动的internet连接时将此与服务器同步。 我这样说: 发送第一个表的数据-如果成功,它将从服务器返回插入的IDs。因此,我用新的ID更新本地数据,并用第一个表ID更新第二个表的关系 然后,我继续为第二个表发送数据,并执行与第一个表类似的操作,然后继续为第三个表发送数据 synchData() { let result = []; this.userDao.get('

如何使用ionic 2向服务器发送多个请求

我在
sqlite
dB中有三个离线工作的表。我想在有活动的internet连接时将此与服务器同步。 我这样说:

  • 发送第一个表的数据-如果成功,它将从服务器返回插入的
    IDs
    。因此,我用新的
    ID
    更新本地数据,并用第一个表
    ID
    更新第二个表的关系

  • 然后,我继续为第二个表发送数据,并执行与第一个表类似的操作,然后继续为第三个表发送数据

            synchData() {
        let result = [];
        this.userDao.get('TOKEN').then(tkn => {
              this.itendao.getAll().then(itins => {
    
                    for (let i of itins) {
                          let event = {
                                Token: '',
                                Itin: {
                                      itin: Object(),
                                      relevs: {
                                            relev: Object(),
                                            obs: []
                                      }
                                }
                          }
                          event.Token = tkn;
                          event.Itin.itin = i;
                          this.relevedao.geItenReleve(i.IdItin).then(rlvs => {
    
                                for (let r of rlvs) {
                                      event.Itin.relevs.relev=r;
                                      this.especesobsDao.getReleveObs(r.CodRel).then(obs => {
                                            event.Itin.relevs.obs.push(obs);
                                      });
                                }
                          });
                          result.push(event);
                    }
                    console.log(result);
              });
        });
    

  • 如何使用ionic 2实现这一点?

    您可以通过使用flatMap和subscribe使用implement:

         this.userDao.get('TOKEN').flatMap(tkn => {
            return this.itendao.getAll()
         })
         .flatMap(itins => {
            for (let i of itins) {
                let event = {
                            Token: '',
                            Itin: {
                              itin: Object(),
                              relevs: {
                              relev: Object(),
                              obs: []
                              }
                            }
                }
            event.Token = tkn;
            event.Itin.itin = i;
            }
            return this.relevedao.geItenReleve(i.IdItin)
          })
          .subscribe(rlvs => {
              for (let r of rlvs) {
                event.Itin.relevs.relev = r;
                this.especesobsDao.getReleveObs(r.CodRel).then(obs => {
                    event.Itin.relevs.obs.push(obs);
               });
           }
        })
    

    你能分享你的代码吗?你试过什么吗?请分享代码。