Redux 如何在使用NgRx完成前一个事件后发出一个事件?

Redux 如何在使用NgRx完成前一个事件后发出一个事件?,redux,rxjs,ngrx,ngrx-store,ngrx-effects,Redux,Rxjs,Ngrx,Ngrx Store,Ngrx Effects,我是这项技术的新手,我正在一个项目中工作,在这个项目中,blow是一个场景 表架构: tbl.产品 id 产品名称 品牌识别码[FK] tbl.品牌 id 品牌名称 在这里,在提交时,我首先添加BrandName,并获取新添加的品牌记录id,并使用品牌id在产品表中插入完整记录 Submit(){ this.saveBrand.emit(brand); product.brand_id = brands.id; this.saveProduct.emit(product); } 为此,我使

我是这项技术的新手,我正在一个项目中工作,在这个项目中,blow是一个场景

表架构:

tbl.产品 id
产品名称
品牌识别码[FK]

tbl.品牌 id
品牌名称

在这里,在提交时,我首先添加BrandName,并获取新添加的品牌记录id,并使用品牌id在产品表中插入完整记录

Submit(){

this.saveBrand.emit(brand);
product.brand_id = brands.id;
this.saveProduct.emit(product);

}
为此,我使用NgRx商店

品牌效应

addBrand$: Observable<Action> = this.actions$
    .pipe(ofType<Add>(BrandActionTypes.Add),
      switchMap(action => this.BrandService.addBrand(action.payload)),
     map((Brand: any) => new AddSuccess(Brand)),
      catchError(err => {
        toastr.error(`Could not add Brand.`);
        console.error(err);
        return of(new AddFail(err));
      })
    );
addProduct$: Observable<Action> = this.actions$
    .pipe(ofType<Add>(ProductActionTypes.Add),
      switchMap(action => this.ProductService.addProduct(action.payload)),
     map((Product: any) => new AddSuccess(Product)),
      catchError(err => {
        toastr.error(`Could not add Product.`);
        console.error(err);
        return of(new AddFail(err));
      })
    );

分派操作是一个异步过程,这就是为什么品牌id没有“填充”的原因。 要解决您的问题,您可以做以下几件事:

  • 您的产品效果可以通过
    AddSuccess
    操作收听
  • 使用一个效果处理两个服务调用
  • 打服务电话

一篇关于一些模式的优秀文章

分派操作是一个异步过程,这就是为什么品牌id没有“填充”的原因。 要解决您的问题,您可以做以下几件事:

  • 您的产品效果可以通过
    AddSuccess
    操作收听
  • 使用一个效果处理两个服务调用
  • 打服务电话

一篇关于某些模式的精彩文章

对我不起作用。我在连锁经营方面遇到了麻烦,不能为我工作。我在连锁经营方面遇到了麻烦。
Submit(){

this.saveBrand.emit(brand); 
product.brand_id = brands.id;
this.saveProduct.emit(product); \\hold until brand get added

}