【发布时间】:2018-12-08 07:43:41
【问题描述】:
从 angular 4 到 angular 6 代码现在我在 vs 代码中遇到错误,说属性 'subscribe' 在类型 'Promise' 上不存在。错误在 Profile.component.ts 中。不知道是什么问题
下面是代码
用户类
export class User {
id: number
name: string
email: string
avatar: string
joined: string
}
用户服务
import { Injectable } from '@angular/core'
import { AuthService } from './auth.service'
import { Http, Headers, RequestOptions } from '@angular/http';
import { CONFIG } from '../config/config'
import { User } from '../classes/User'
import 'rxjs'
@Injectable()
export class UserService {
private headers: Headers
constructor(private authService: AuthService, private http: Http) {
this.headers = new Headers({ 'Authorization': `Bearer ${this.authService.getToken()}` })
}
getUserById(id: number): Promise<User> {
if (id == this.authService.getAuthUserId()) {
return Promise.resolve(this.authService.getAuthUser())
}
let options = new RequestOptions({ headers: this.headers })
this.http.get(`${CONFIG.API_URL}/user/${id}`, options)
.subscribe((response) => {
console.log(response.json())
})
}
}
配置文件组件.ts
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router'
import { UserService } from '../services/user.service'
import { User } from '../classes/User'
@Component({
selector: 'app-profile',
templateUrl: './profile.component.html',
styleUrls: ['./profile.component.css']
})
export class ProfileComponent implements OnInit {
id: number
user: User
constructor(private router: ActivatedRoute, private userService: UserService) { }
ngOnInit() {
this.router.params.subscribe((param) => {
this.id = +param['id']
})
this.userService.getUserById(this.id)
.subscribe((user) => this.user = user)
}
}
【问题讨论】:
标签: javascript angular angular6