首页 > 解决方案 > Angular:使用两种服务从一个组件添加数据时出现问题

问题描述

这个问题与我之前的问题有关。我面临的问题是使用两种服务将数据发送到后端。

我已阅读有关使用 Observables 的 forkJoin 的信息,但我无法将它用于我的问题。

我的add()方法:

add() {
    this.employeesService
    .createEmployee(this.form.value as Employee)
    .subscribe(
        employee=> {
            console.log(employee);
        },
        (err: HttpErrorResponse) => {
            this.messagesService.openDialog('Error', 'Invalid Employee. Try Again!');
        }
    );
    const resources: any = {};
    const employeeId: any = {};
    let wholeData: any = [];
    function makeArray(resourceNumber, id) {
        resources.push(resourceNumber);
        for(var i = 0; i < this.resourceNumber.length; i++) {
            employeeId.push(id);
        }
    }
    wholeData = new makeArray(this.resourceNumbers, employeeId);
    this.resourceNumbersService
    .createResourceNumber(wholeData as Resource)
    .subscribe(
        resourceNumber => {
            console.log(resourceNumber);
        },
        (err: HttpErrorResponse) => {
            this.messagesService.openDialog('Error', 'Invalid Resource Number. Try Again!');
        }
    );
}

这是资源的 Postman Json 格式,在我的后端中运行良好:

{ "resources": [ { "resourceNumber": "121", "employeeId": "3" }, 
{ "resourceNumber": "122",  "employeeId": "3" }, 
{ "resourceNumber": "123", "employeeId": "3"} ] }

我面临的麻烦是将数据发送到资源数据库。员工被发送完全没问题。有没有更简单的方法?非常感谢。请在Stackblitz上找到问题

标签: jsonangularrestservicesequelize.js

解决方案


我已阅读有关使用 Observables 的 forkJoin 的信息,但我无法将它用于我的问题。

所以以下是使用方法forkJoin

import { forkJoin } from 'rxjs';  // RxJS 6 syntax


  functionReturningForkJoinOFObservableBatch(): Observable<any[]> {
    let observableBatch = [];
    observableBatch.push("push all observables ")
    return forkJoin(...observableBatch);
  }

   //subscribe the above function to get response of all observable in single go

   //When all observables complete, emit the values

     this.functionReturningForkJoinOFObservableBatch().subscribe(responseList => {
        });

推荐阅读