메리 크리스마스에 친구.
내 Angular 4 앱을 기다릴 수 없습니다.내 API를 호출하기 전에 속도를 줄이거 나 기다리는 방법은 무엇입니까?
내가 API를 호출하기 전에 속도를 줄이려고합니다.
하지만 벽을 치기를 계속합니다.
내 코드에서 HttpInterceptor를 사용하고 있습니다.
하지만 Observable은 폭발 할 것입니다.
너무 경멸하지 마세요.
아래에서 내 시도를 볼 수 있습니다.
export class ApiUrlInterceptor implements HttpInterceptor {
constructor(private http: Http) { }
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return Observable.create(observer => {
setTimeout(() => {
observer.next(true); //Not sure why I do this
const start = Date.now();
console.log(`Request for ${req.url}`);
return next.handle(req).do(event => {
if (event.type == HttpEventType.Response) {
const elapsed = Date.now() - start;
console.log(`Request for ${req.urlWithParams} took ${elapsed} ms.`);
}
});
}, 1000);
});
}
}
결과로 API가 호출됩니다.
발신자에게 결과가 없습니다.
내 관찰 가능이 고착 된 것 같습니다.
나는 운이 다가오고 있습니다.
나는 이것이 당신이 필요가 없습니다 대신 응용 프로그램을 구성, "임의의 번호를 기다리지 않는다"각도에서 안티 패턴 것을 잘 알고 있어요. 사실 내 사용 사례는
HttpInterceptor
입니다. 다른 Observable에 의해로드 된 일부 물건이 필요합니다. 일반적으로 사용자가 특정 페이지를 새로 고칠 때만 문제가 발생하지 않습니다. 물건을로드하지 않을 위험이 있습니다.
내 직접 가르쳐 준 "빠른 수정"은 내가 지어낸 것일 수도 있고로드하지 않은 경우 일부를 대기 ("로드 할 시간을줍니다") 한 다음 계속 진행할 수 있습니다. 사용자가 자주 특정 각도의 링크를 새로 고치지 않습니다. . 나는 먼 길을 모두 config.ts
으로 옮기고 APP_INITIALIZER
을 사용했다. 그러나 나는 잠시 기다리는 방법을 알고 싶다. 그러므로 최소한의 시간을 기다려야한다.
나는 당신의 질문을 편집 할 예정 이었지만, 나는 그것이 일종의 노래라고 생각했다. –
그래, 그냥 재미있어, 지루해. 어쨌든 나는 약간의 정보가 빠진다면 분명히 희망한다. –
왜 당신은 "천천히"하고 싶습니까? 무엇을 달성하려고합니까 (최종 목표는 무엇입니까?) – Igor