Я делаю интерфейс GUI для API. Одним из шагов в этом инструменте является опрос приложения для многофакторной аутентификации и т. Д. Я не занимаюсь этим.
Я пытаюсь создать функцию Angular 7, которая опрашивает или вызывает этот HTTP GET /getmfa
API каждые 5 секунд, пока MFA не пройдет и API не выдаст мне JSON.
У меня проблемы с получением интервала на работу. Интернет полон противоречивой информации о версиях RxJS и синтаксисе .pipe
. Я использую RxJS 6+ и Angular 7
Сначала я попытался заставить интервал работать
poll(apiUrl: string, options?: any): Observable<any> {
let url = apiUrl;
let headers = new HttpHeaders({
'Content-Type': 'application/json',
});
let httpOptions = {
headers: headers,
withCredentials: true,
};
return interval(5000).pipe(map(() => {
return this.http.get(url, httpOptions)
.pipe(
map(
(data) => {
console.log('polling...');
console.log(data);
return data;
},
error => {
console.log('Error:', error);
}
)
)
}));
Даже тайм-аут не работает, но это не то, чего я хочу в любом случае.
poll(apiUrl: string, options?: any): Observable<any> {
let url = apiUrl;
let headers = new HttpHeaders({
'Content-Type': 'application/json',
});
let httpOptions = {
headers: headers,
withCredentials: true,
};
setTimeout(() => {
return this.http.get(url, httpOptions)
.pipe(
(data) => {
return data;
}
)
}, 5000);
Что я делаю не так?