Angular Observables链接调用并设置子对象数据

时间:2018-09-26 08:25:11

标签: angular

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

   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);
        });
    }

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

1 个答案:

答案 0 :(得分:1)

使用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); 
          })
        )
}