Как использовать указанные c ответы в посте возврата - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть сообщение на сервере, которое может вернуть res {success: true}

enter image description here

В моем сообщении, если я получу этот ответ, я пытается активировать

this.successPost = true;

this.invitePost = false;

Только на этот точный ответ. res {success: true}

Мой код TS всегда возвращает if и никогда else в любом ответе res.

ts

async sendInvite() {
  let formData = {
    "firstName" : this.data.firstName,
    "lastName" : this.data.lastName,
    "email" : this.data.email
  };
  this.httpClient.post<any>('https://8618' + formData, { 
    headers: { 'x-authorization-token': 'XXXXXXXXXX' }}   
    )
    .pipe(
      finalize(() => { })
    ).subscribe(
        res => {
          console.log ("res", res);
          let response = JSON.stringify(res);
            console.log ("response", response);
            if (res = {success: true} ) {
                this.presentToast(response);
                this.successPost = true;
                this.invitePost = false;
              } else {
                this.presentToast(response);
              }
        },
        (err: HttpErrorResponse) => {  // fire on offline
          console.log("err.error", err.error);
          this.presentToast(err.error);
        }  
  );
}

Ответы [ 2 ]

2 голосов
/ 08 апреля 2020

Я бы посоветовал вам не структурировать объект ответа и просто использовать его как есть. И используйте оператор равенства (===) вместо оператора присваивания.

    async sendInvite() {
  let formData = {
    "firstName" : this.data.firstName,
    "lastName" : this.data.lastName,
    "email" : this.data.email
  };
  this.httpClient.post<any>('https://8618' + formData, { 
    headers: { 'x-authorization-token': 'XXXXXXXXXX' }}   
    )
    .pipe(
      finalize(() => { })
    ).subscribe(
        response => {
          console.log ("response ", response );
            if (res.success === true) {
                this.presentToast(response);
                this.successPost = true;
                this.invitePost = false;
              } else {
                this.presentToast(response);
              }
        },
        (err: HttpErrorResponse) => {  // fire on offline
          console.log("err.error", err.error);
          this.presentToast(err.error);
        }  
  );
}
2 голосов
/ 08 апреля 2020

Это потому, что вы присваиваете значение в условии if.

Вам следует изменить значение if (res = {success: true} ) на if (res === {success: true} ). Но тогда вы можете столкнуться с другой проблемой, потому что вы строчите ответ.

Ваше окончательное условие должно быть похоже на if (res === '{"success": true}' )

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...