Текущее поведение
Я получаю следующее исключение, когда пропускаю наблюдаемое более чем из двух методов:
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