首页 > 解决方案 > Angular Observables 链接调用和设置子对象数据

问题描述

我刚刚开始查看最新版本的 angular cli。我创建了两种服务,一种用于地址,另一种用于人员。创建人员时,我想在创建人员之前点击地址服务上的 create 方法,给我一个新创建的地址的 id,然后将其设置为人员对象,然后发布。

   return create(model:Person) : Observable<Person> {
        this.addressService.create(model.Address)
        .subscribe((result:Address) =>{
            model.AddressId = result.Id;
            return this.http.post(url,model,httpOptions);
        });
    }

显然这是不对的,有人可以指出我正确的方向吗?

标签: angular

解决方案


使用mergeMap链接可观察对象。

import { mergeMap } from 'rxjs/operators';

create(model: Person): Observable < Person > {
    return this.addressService.create(model.Address)
        .pipe( 
           mergeMap((result: Address) => {
             model.AddressId = result.Id;
             return this.http.post(url, model, httpOptions); 
          })
        )
}

推荐阅读