Angular как сделать задержку get запроса

105
18 декабря 2020, 15:20

Есть код

 return this.http.get(`${this.BASE_URL}${url}`)
            .pipe(map((response: HttpResponse<any>) => response));  

Как сделать чтоб запрос выполнялся не сразу, а допустим через 2-3 секунды, пробовал добавить delay(2000) но тут все равно запрос отправляет моментально, только результат с задержкой

Answer 1

Используйте фабрику timer и оператор mergeMap, который подпишется на http.get после задержки и вы получите ответ от сервера:

import { timer } from 'rxjs';
import { mergeMap } from 'rxjs/operators';
return timer(2000).pipe(
  mergeMap(() => this.http.get(`${this.BASE_URL}${url}`))
);

И кстати на заметку HttpClient.prototype.get не возвращает Observable<HttpResponse<any>>, а Observable<Object>, если не перегружать тип

READ ALSO
наложение одного изображения на другое

наложение одного изображения на другое

я новичок в этой области, не могу разобраться как вставить изображение(растянуть его по красной фигуре)

120
Теряется указатель [закрыт]

Теряется указатель [закрыт]

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском

135