我试图在数组中转换一个可观察的数组,并在get函数中使用传播运算符返回新数组。
在尝试通过map运算符进行订阅之前,我尝试手动转换可观察数组,但目前尚无解决方案(它仍然是void类型的可观察对象)
如何在数组中将可观察值转换为在get orders()
中使用散布运算符的位置(返回数组类型)?
我需要进行计算...
//in grid.service.ts
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Order } from '../order/order.model';
@Injectable({
providedIn: 'root'
})
export class OrderGridService{
constructor(private http: HttpClient){}
private _orders: Order[];
getAllOrder(): Observable<Order[]> {
return this.http.get<Order[]>(this._orderURL + "/" +
this.userID + "/" + this.currentUservalueToken);
};
get orders(): Order[] {
return [...this._orders];
}
}
我需要向变量_orders
分配我在函数getAllOrder()
中执行的html请求的响应,但在那里它返回Order[]
的Observable而不是数组,因此我可以只需返回[...this._orders]
希望您能理解我的意思。
谢谢您的任何建议!
答案 0 :(得分:-1)
您可以执行类似的操作。但是这段代码是异步的。小心点。
//in grid.service.ts
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Order } from '../order/order.model';
@Injectable({
providedIn: 'root'
})
export class OrderGridService{
constructor(private http: HttpClient){
// on init of this service get data from an api
this.getAllOrder().subscribe(data => {
this._orders = data;
})
}
private _orders: Order[];
getAllOrder(): Observable<Order[]> {
return this.http.get<Order[]>(this._orderURL + "/" +
this.userID + "/" + this.currentUservalueToken);
};
get orders(): Order[] {
return [...this._orders];
}
}