Как вызвать одну услугу из другой на угловой 6 - PullRequest
0 голосов
/ 09 мая 2019

В приведенном ниже коде у меня есть этот Сервис 1: метод uploadAttachment, который фактически выполняет HTTP-пост-вызов, и этот метод (uploadAttachment) вызывается из другого Сервиса 2. В Сервисе 2 я всегда получаю экземпляр сервиса 1 неопределенным.Итак, вызов не был выполнен в Сервисе 1.

Сервис 1:

@Injectable({
  providedIn: 'root'
})
export class Service1 {
  constructor(private http: HttpClient) {}

  uploadAttachments(formData: any): any {
    const headers = new HttpHeaders();
    headers.append('Content-Type', 'multipart/form-data');
    headers.append('Accept', 'application/json');

    return  this.http.post(this.baseURL + 'Data/UpdateInsertAttachments', formData,
    {headers: headers});
  }
}

Сервис 2:

@Injectable({
    providedIn: 'root'
})
export class Service2 {
  constructor(private service: Service1) {

  fileChange(event) {
    const formData: FormData = new FormData();
    // some code
    this.service.uploadAttachments(formData).subscribe(
      resp => {
        if (resp === -1 ) {
            alert('Error occured while uploading the attachment');
            return;
        } else {
            // some code
        }
      },
      (error) => {
        console.log('POST ERROR in method uploadAttachments: ' + error.error);
      });
  }
}

1 Ответ

0 голосов
/ 09 мая 2019

Так как Service1 ожидает HttpClient в своей подписи, вы должны предоставить ему

...