[ANGULAR] 각도 - RXJS를 사용하여 올바르게 운영자를 확장하여 재귀 적품 호출을하십시오
ANGULAR각도 - RXJS를 사용하여 올바르게 운영자를 확장하여 재귀 적품 호출을하십시오
해결법
-
1.동일한 함수를 반환하는 GetSavedPostSforauthenticationUser는 재귀 적 확장을 일으 킵니다. 이를 해결하려면 HTTP Observable을 분리해야합니다.
동일한 함수를 반환하는 GetSavedPostSforauthenticationUser는 재귀 적 확장을 일으 킵니다. 이를 해결하려면 HTTP Observable을 분리해야합니다.
private getSavedPostsForAuthenticatedUser(username: string, after: string, userPosts: any) { const request$ = this._getRequest(username, after, userPosts); if (!userPosts) { userPosts = []; } return request$ .expand(response => { if (response.data) { for (const post of response.data.children) { userPosts.push(post); } if (response.data.after) { return this._getRequest(username, response.data.after, userPosts); } } return Observable.of(userPosts); }); } private _getRequest(username: string, after: string) { const headers = new Headers(); headers.append('Authorization', `Bearer ${this._token}`); const redditUrl = `${RetainerConfig.redditOauthUrl}user/${username}/saved`; const url = after ? `${redditUrl}/?after=${after}` : redditUrl; return this._http.get(url, {headers: headers}) .map(response => response.json()); }
확장을 중지하려면 Observable.Empty ()를 사용할 수 있습니다. 이 게시물을 참조하십시오.
from https://stackoverflow.com/questions/44981974/angular-correctly-using-rxjs-expand-operator-to-make-recursive-http-calls by cc-by-sa and MIT license
'ANGULAR' 카테고리의 다른 글
[ANGULAR] 진행하기 전에 루프가 완료하는 것의 가입을 기다리는 방법 (0) | 2020.11.27 |
---|---|
[ANGULAR] Angular 2 Typescript : TypeError :이 값은 함수가 아닙니다. (0) | 2020.11.27 |
[ANGULAR] 제 3 자 라이브러리에서 DOM 요소 내에 각도 2 구성 요소를 렌더링 할 수 있습니까? (0) | 2020.11.27 |
[ANGULAR] 하위 폴더의 모든 스크립트로 'ng 빌드' (0) | 2020.11.27 |
[ANGULAR] Angular 2가 예외가 발생한 후보기를 업데이트하지 않습니다 (0) | 2020.11.27 |