我有一个可观察的对象,我将其转换为一个承诺,以便我可以等待这些值。问题在于它返回了错误的值。
这是我要测试的代码:
const orders = await this.invoiceService.getOrders(invoiceId).toPromise();
console.log(orders, 'FROM PROMISE');
this.invoiceService.getOrders(invoiceId).subscribe((orders) => {
console.log(orders, 'FROM SUBSCRIPTION');
});
这是我从两个控制台日志中得到的:
从您可以看到,两个控制台日志的数量都有所不同。对象的所有属性均保持不变。我不太确定为什么。可观察的只是后端中的http调用。后端代码只是数据库中的一个简单查询,由于数量已在数据库中进行编码,因此不会计算数量,因此我不确定将可观察对象转换为承诺时数量为何在变化。
这是可观察的:
getOrders(invoiceId: number): Observable<Order[]> {
return this.http.get<Order[]>(`${environment.backendUrl}/invoices/orders/${invoiceId}`);
}