javascript - Returnera svar från HTTP POST Angular


Jag skulle vilja ta ett svar från postmetoden och använda detta värde i subscribe-metoden. I kommentarerna skrev jag också information om min fråga.

Min kod

login(): void {
    this.authService.login(this.model)
      .subscribe(next => {
          //here I wanted to use received value
          this.alertifyService.success('success');
        }, error => {
          this.alertifyService.error('error');
        }
      );
  }

och

  login(model: any) {
    return this.http.post(this.baseUrl + 'login', model)
      .pipe(map((response: any) => {
          // how to send this reponse to my subscribe method ?
          const user = response;
          if (user) {
            localStorage.setItem('token', user.token);
            this.decodedToken = this.jwtHelper.decodeToken(user.token);
            console.log(this.decodedToken);
          }

        }
      ));
  }

Svar #1

du behöver bara returnera värdet från map

login(model: any) {
        return this.http.post(this.baseUrl + 'login', model)
            .pipe(map((response: any) => {
                    const user = response;
                    if (user) {
                        localStorage.setItem('token', user.token);
                        this.decodedToken = this.jwtHelper.decodeToken(user.token);
                        return this.decodedToken;
                    }
                }
            ));
}

och sedan använd det så här:

authService.login(/**/).subscribe(token => /*do something with the token*/)