对RESTneneneba API的角度调用没有等待数据到达



我有以下代码:

export class Whatever implements OnInitn{
prices;
ngOnInit(){
this.CoinPricesService.getPrices().subscribe(
pricesFromResponse => {
this.prices = pricesFromResponse;
console.log('this is what I get from the api: ', this.prices);
}
);

console.log('this is my prices class object', this.prices);
}
}

输出是这样的:

这是我的价格类对象未定义

api:这是我从$,$$中得到的

正如您所看到的,第一条消息显示在第二条中,第二条消息位于第一位,带有UNDEFINED,显然,正在发生的事情是,代码没有等待响应的到来,而是同步的,为什么?无法观察到。订阅(response=>this.myVar=响应(;本该处理的?我不能在我班的其他地方使用数据,因为当代码到达那里时,它总是未定义的,请帮助

我的服务看起来像这样:

@Injectable({
providedIn: 'root'
})
export class CoinPricesService {
private apiURl = 'https://api.forprices/blablabla';
constructor(private http: HttpClient) { }
getPrices(){
return this.http.get<any>(this.apiURl);
}
}

如果您有一个依赖于价格的函数,那么您可以在订阅中执行这些函数。像这样的东西:

export class Whatever implements OnInitn {
prices;
ngOnInit() {
this.CoinPricesService.getPrices().subscribe(
pricesFromResponse => {
this.prices = pricesFromResponse;
console.log('this is what I get from the api: ', this.prices);
this.someFunction(this.prices);
}
);
}

someFunction(prices: any) {
//use prices ...
}
}

最新更新