Передача наблюдаемого через 2 метода не работает - PullRequest
0 голосов
/ 11 мая 2018

Текущее поведение

Я получаю следующее исключение, когда пропускаю наблюдаемое более чем из двух методов:

TypeError: Converting circular structure to JSON
    at JSON.stringify (<anonymous>)
    at HttpRequest.serializeBody (http.js:916)
    at Observable._subscribe (http.js:2196)
    at Observable._trySubscribe (Observable.js:172)
    at Observable.subscribe (Observable.js:160)
    at Object.subscribeToResult (subscribeToResult.js:23)
    at MergeMapSubscriber._innerSub (mergeMap.js:132)
    at MergeMapSubscriber._tryNext (mergeMap.js:129)
    at MergeMapSubscriber._next (mergeMap.js:112)
    at MergeMapSubscriber.Subscriber.next (Subscriber.js:90)

Если я вызываю метод post2 (см. Ниже) напрямуюв функции login все работает, и я вижу сообщение об успехе.

Ожидаемое поведение

Не должно возникать никаких исключений.

Минимальное воспроизведение проблемы с инструкциями

У меня есть следующий шаблон и метод: <button (click)="login()">Click me</button>

внутри метода входа в систему:

public login(): void {
  this.webService
    .post('auth/login', { username: this.username, password: this.password })
    .subscribe((data: any) => {
       console.log('sucess');
     }, (err: any) => {
        console.log('errror');
  });
}

А затем в веб-сервисе:

public post(url: string, body: any): Observable<any> {
  return this.post2(url, body);
}

и 2-й метод:

public post2(url: string, body: any): Observable<any> {
  return this.http.post('/auth/login', body);
}

Если я вызываю метод post2 непосредственно в функции login, тогда все работает, и я вижу сообщение об успехе.

Что такое мотивация/ вариант использования для изменения поведения?

Среда

Угловая версия: 5.2.7

Браузер: - [X] Chrome (для настольных ПК) версия 66

...