RXJS 6 - сохранение коллекции после одной сущности - PullRequest
0 голосов
/ 02 июля 2018

Это мой registerOrde, который сохраняет и заказывает затем список OrderedProduct, а затем "возвращает" заказ.

private createOrder(order: Order): Observable<Order> {...}
    private createOrderedProduct(orderedProduct: OrderedProduct): Observable<OrderedProduct> {...}
    public registerOrder(order: Order): Observable<Order> {
    return new Observable<Order>(subscriber => {
      this.createOrder(order).subscribe(
        createdOrder => {
          if (order.orderedProducts) {
            let observableBatch = [];
            order.orderedProducts.forEach(orderedProduct => {
              orderedProduct.order = createdOrder;
              observableBatch.push(this.createOrderedProduct(orderedProduct));
            });
            forkJoin(observableBatch).subscribe(
              products => {
                createdOrder.orderedProducts = products;
                subscriber.next(createdOrder);
                subscriber.complete();
              },
              error => {
                subscriber.error(error);
                subscriber.complete();
              }
            );
          } else {
            subscriber.next(createdOrder);
            subscriber.complete();
          }
        },
        error => {
          subscriber.error(error);
          subscriber.complete();
        }
      );
    });
}

Я хотел бы иметь такое же поведение, но более корректно (то есть, используя операторы и удаляя инструкцию 'new Observable'). Я использую Angular 6.

Какие операторы мне следует использовать? Любой совет?

...