角度订阅响应 [英] Angular subscribe response
问题描述
好的,我对 Angular 还是很陌生,所以我有这个小问题.所以我遵循 Angular 指南(https://angular.io/guide/http).所以我的问题是我的 http-response 总是未定义的.在调试工具中,响应是:
Okay, I'm pretty new to Angular, so I have this little problem. So i'm following the Angular guide (https://angular.io/guide/http). So my problem is that my http-response is always undefined. In debug-tools the response is:
{"code":0,"status":"error","message":"Invalid JWT - Authentication failed!"}
应该是这样.但是当我控制台日志响应时,它总是说
as it should be. But when I console-log response, it always says
This should be the response???: undefined
profile.component.ts
profile.component.ts
import { Component, OnInit } from '@angular/core';
import { parse } from 'path';
import { HttpClient } from '@angular/common/http';
import { Router } from '@angular/router';
import { getLocaleTimeFormat } from '@angular/common';
import { UserService } from '../user.service';
import { Config } from '../config';
@Component({
selector: 'app-profile',
templateUrl: './profile.component.html',
styleUrls: ['./profile.component.css']
})
export class ProfileComponent implements OnInit {
tmp: any;
token: any;
tmp2: any;
config: Config;
constructor(private userService: UserService, private router: Router,
private http: HttpClient) { }
ngOnInit() {
this.token = localStorage.getItem('token');
this.tmp = this.userService.checkToken(this.token)
.subscribe((data: Config) => this.config = {
code: data['code'],
message: data['message']
});
console.log("This should be the response???: ", this.config);
}
}
和 user.service.ts
and the user.service.ts
import { Injectable } from '@angular/core';
import { Router } from '@angular/router';
import { HttpClient, HttpResponse } from '@angular/common/http';
import { Response } from "@angular/http";
import { Observable } from "rxjs";
import 'rxjs/add/operator/map';
import { httpFactory } from '@angular/http/src/http_module';
import { Config } from './config';
@Injectable({
providedIn: 'root'
})
export class UserService {
config: Config;
items: any;
readonly url = 'http://localhost:82/phpangular/userSystem/src/api/userCtrl.php';
constructor(private http: HttpClient, private router: Router) { }
checkToken(token) {
return this.http.post<Config>
(this.url, {'data': 'checkToken', 'token': token});
}
}
和我的界面 config.ts
and my interface config.ts
export interface Config {
code: string;
message: string;
}
如果有人给我指点,我会很高兴:)
If someone would give me a pointer, I would be real glad :)
干杯
- 尼可
推荐答案
你的 console.log
应该在 subscribe
回调内
Your console.log
should be inside subscribe
callback
this.tmp = this.userService.checkToken(this.token).subscribe(
data => {
this.config = <Config>(data);
console.log("This should be the response???: ", this.config);
},
err => {
});
这篇关于角度订阅响应的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!