toPromise和订阅可观察的返回值不同

时间:2020-06-05 01:34:58

标签: angular rxjs

我有一个可观察的对象,我将其转换为一个承诺,以便我可以等待这些值。问题在于它返回了错误的值。

这是我要测试的代码:

const orders = await this.invoiceService.getOrders(invoiceId).toPromise();
console.log(orders, 'FROM PROMISE');
this.invoiceService.getOrders(invoiceId).subscribe((orders) => {
  console.log(orders, 'FROM SUBSCRIPTION');
});

这是我从两个控制台日志中得到的:

Text

从您可以看到,两个控制台日志的数量都有所不同。对象的所有属性均保持不变。我不太确定为什么。可观察的只是后端中的http调用。后端代码只是数据库中的一个简单查询,由于数量已在数据库中进行编码,因此不会计算数量,因此我不确定将可观察对象转换为承诺时数量为何在变化。

这是可观察的:

getOrders(invoiceId: number): Observable<Order[]> {
  return this.http.get<Order[]>(`${environment.backendUrl}/invoices/orders/${invoiceId}`);
}

0 个答案:

没有答案