在Angular中,REST服务的调用是异步的,因此第一次调用时可能没有立即返回值。为了解决这个问题,可以使用Promise或Observable来处理异步调用。
使用Promise的解决方法如下所示:
getData(): Promise {
return new Promise((resolve, reject) => {
this.http.get('your-rest-api-url')
.subscribe(
(response) => {
resolve(response);
},
(error) => {
reject(error);
}
);
});
}
this.yourService.getData()
.then((data) => {
console.log(data);
})
.catch((error) => {
console.error(error);
});
使用Observable的解决方法如下所示:
import { Observable } from 'rxjs';
getData(): Observable {
return this.http.get('your-rest-api-url');
}
this.yourService.getData()
.subscribe((data) => {
console.log(data);
}, (error) => {
console.error(error);
});
通过使用Promise或Observable,您可以在第一次调用时处理异步调用,并获得返回的值。