我有一个角度4形式,用于添加/更新以角度4编写的对象。 该表单有几个下拉列表,其中的选项来自API调用。 更新对象时,在ngInit上,我按ID获取现有对象,并获取下拉列表的选项。 但下拉列表并不总是加载预先选择的选项。 我知道原因是因为所有API调用都是异步的,当加载下拉列表选项之前获取对象数据时,将不会选择选项。
处理这种情况的最佳方法是什么?
答案 0 :(得分:0)
您应该使用forkJoin()
运算符,它允许我们获取Observable列表并执行它们并行。我们不会单独订阅这些Observable中的每一个。相反,我们订阅了#34;容器" forkJoin()创建的可观察对象。
参见我的例子:
ngOnInit() {
const cart = this.stockInventoryService.getCartItems(); // Http request
const products = this.stockInventoryService.getProducts(); // Http request
Observable.forkJoin(cart, products)
.subscribe(([cart, products]: [Stock[], Product[]]) => {
// ... handle values...
});