通常情况下,Angular 会在对 Observable 进行订阅时自动将其转换为 Promise,并返回错误对象,但如果订阅中没有使用 Promise 则会出现此错误。要解决此问题,我们可以使用 toPromise()
方法将 Observable 手动转换为 Promise。
例如:
import { Component, OnInit } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Component({
selector: 'app-my-component',
template: `{{ message }}`
})
export class MyComponent implements OnInit {
message: string;
constructor(private http: HttpClient) {}
ngOnInit() {
this.http.get('https://api.example.com/data').toPromise().then(data => {
this.message = data.message;
}).catch(error => {
console.log(error);
});
}
}