Ionic / Angular http.post将被多次调用

时间:2018-09-07 21:56:09

标签: angular rest http post ionic-framework

我使用Ionic3和Angular 5,尝试通过http.post从客户端向服务器发送json数据。

但是出于未知的原因,当我每次单击按钮手动发送发帖请求时,发帖请求将每隔几分钟自动被调用...但是我不希望这样。客户只能发送一个帖子请求。

请问有人可以解释问题所在吗?

----我的通话班

import { ConnectionServiceProvider } from '../../providers/connection-service/connection-service';

@IonicPage()
@Component({
 selector: 'page-result-modal',
 templateUrl: 'result-modal.html',
 })

sendGameResults() {
 this.serverConnection.sendGameResult(result).subscribe(data => {
    console.log(result);
  }, error => {
    console.log(error);
  });
 }
}

----我的ConnectionService

import { HttpClient } from '@angular/common/http'
import { Injectable } from '@angular/core';

@Injectable()
export class ConnectionServiceProvider {
mainUrl = "http://127.0.0.1:8080";

constructor(public http: HttpClient) {}

sendGameResult(result) {
  var data = JSON.stringify(result);
  return this.http.post(this.mainUrl + '/sendgameresult', data, { headers: { 
     'Content-Type': 'application/json' } }).map(response => {
        return response;
  });
}

----- HTML

<ion-row nowrap no-padding>
        <button class="send-game-results" (click)="sendGameResults()" ion- 
    button full>Senden</button>
</ion-row>

enter image description here

1 个答案:

答案 0 :(得分:0)

我不确定,但是您也可以创建一个变量,如果成功,例如,可以调用此变量:

public canelReq = this.yourService.unsubscribe();

然后当您获得成功时,只需调用此方法

succsess => this.cancelReq();