延迟角度/打字稿项目

时间:2017-11-09 12:34:12

标签: javascript angular typescript

我的角度项目中有一个页面,其中有一个带有提交按钮的处方集,用于将客户端数据发送到我的数据库,但在发送数据后,我想从客户端表中删除客户端并将其信息插入另一个表。问题是客户端第一次插入使用表中的客户端ID我删除他的数据。它同时发生,因为它们都在同一个按钮点击事件中。我应该怎样才能使删除函数调用等到插入一个部署?

这是提交和删除的按钮

  <button ion-button full block color="danger"(click)="postDados(form.controls.itemRows);postNeurosensi(formsensi.controls.itemRows3);postEletroneuro(form2.controls.itemRows2);deletaDados()">Enviar</button>

这是Page.TS文件中的功能。

 postEletroneuro(req){
    this.service.postEletroneuro(req.value)
    .subscribe(
      data => console.log(data.message),
      err => console.log(err)

   );  
  }
  deletaDados(){ 

    this.service.deleteData(this.parametroid).subscribe(
      data => {
        console.log(data.message);
        this.getDados();
      }

      ,
      err => console.log(err)
    );      

  }

现在service.ts功能

postEletroneuro(params){
    let headers = new Headers();
    headers.append('Content-type','application/json');
    return this.http.post(`${this.api}eletroneuro/`,params,{
      headers: headers
  }).map(
    (res:Response) => {return res.json();}
  );

  }

  deleteData(id){
    console.log(`${this.api}${id}`)
    let headers = new Headers();
    headers.append('Content-type','application/json');
    return this.http.post(`${this.api}fichasdia/${id}/`,id,{
      headers: headers
  }).map(
    (res:Response) => {return res.json();}
  );
  }

有什么想法吗?

3 个答案:

答案 0 :(得分:0)

postEletroneuro(req){
    this.service.postEletroneuro(req.value)
    .subscribe(
      data => {
         console.log(data.message);
         deletaDados();
      },
      err => console.log(err)

   );  
  }
  deletaDados(){ 

    this.service.deleteData(this.parametroid).subscribe(
      data => {
        console.log(data.message);
        this.getDados();
      }

      ,
      err => console.log(err)
    );      

  }

并致电(没有deletaDados):

<button ion-button full block color="danger"(click)="postDados(form.controls.itemRows);postNeurosensi(formsensi.controls.itemRows3);postEletroneuro(form2.controls.itemRows2);">Enviar</button>

答案 1 :(得分:0)

从click事件中删除deletaDados并在订阅中调用

postEletroneuro(req){
this.service.postEletroneuro(req.value)
.subscribe(
  data => {
   console.log(data.message); 
   this.deletaDados();},
  err => console.log(err)
  );   }

答案 2 :(得分:0)

试试这样:

<button ion-button full block color="danger" (click)="postEletroneuro(form2.controls.itemRows2)">Enviar</button>

<强> component.ts

postEletroneuro(req) {
    this.service.postEletroneuro(req.value)
        .flatMap((data) => {
            console.log("data", data);
            return this.service.deleteData(this.parametroid);
        })
        .subscribe((deleteRsp) => {
             console.log("deleteRsp", deleteRsp);
        })
}