Невозможно сохранить ответ метода POST - PullRequest
1 голос
/ 17 апреля 2019

Я могу console.log ответить методом POST.Но я хочу сохранить этот ответ в переменной, чтобы использовать его далее в коде.Пожалуйста, помогите.

вызов метода post отправляет объект в качестве ответа.

student.ts (Студент - это класс, который совпадает с объектом, полученным из запроса на публикацию.)

export class Student {
ID : number;
firstName : string;
}

component.ts (метод отправки вызывается при отправке формы. This.student дает вывод как неопределенное)

public student : Student[];

onSubmit() {
    this._studentService.addData(this.addStudentForm.value)
      .subscribe( response => console.log("respnse", response),
        );
    console.log(this.student);
  }

service.ts

addData(studentData) : Observable<any> {
    return this.http.post<any>(this._url, studentData);
  }

Когда япопытаться сохранить ответ в переменной, я получаю вывод как неопределенный.Как я могу сохранить ответ в переменной?

Ответы [ 2 ]

0 голосов
/ 17 апреля 2019

Попробуйте:

public responseData:any; 
public onSubmit() {
  this._studentService.addData(this.addStudentForm.value).subscribe((response:any)=> { 
    console.log("success: ", JSON.stringify(response)); 
    this.responseData = response; 
  }, (error:any){
    console.log("error: ", JSON.stringify(error));
  });
}
0 голосов
/ 17 апреля 2019

Вы должны просто добавить this.student = response; внутри подписки:

this._studentService.addData(this.addStudentForm.value).subscribe( response => {
    console.log("respnse", response);
    this.student = response;
});

Но если вы хотите сделать что-то с student, вы должны сделать это внутри next обратного вызова подписки:

this._studentService.addData(this.addStudentForm.value).subscribe( response => {
    console.log("respnse", response);
    this.student = response;
    console.log(this.student) <- THIS WILL WORK - STUDENT IS NOT UNDEFINED
    // HERE ARE YOUR METHODS WHICH ARE USING STUDENT
});

Это console.log после подписки все еще будет неопределенным, поскольку этот код будет выполняться ДО окончания подписки, поэтому student на данный момент undefinded.

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