Я хочу построить функцию для проверки правильности введенных данных.
Ниже приведен мой код, который будет иметь функции map()
и take()
, чтобы гарантировать, что функция проверки не будет выполняться более 10 раз.
Я пытаюсь запустить chk_data_status()
, чтобы вернуть статус с помощью tap()
и вернуть этот статус на takeWhile()
, чтобы вся функция остановилась, если статус не находится в статусе. «Обработка» ».
Но проблема в том, что функция takeWhile()
получает значение count из функции map()
и take()
вместо res.status
из tap()
.
const count = 10
timer(5000, 1000)
.pipe(
map(i => count- i),
take(count + 1),
tap(async () => {
let res: any = await this.chk_data_status(id); // return as a Promise
console.log(res.status);
return res.status;
}),
takeWhile((status: any) => {
console.log(status);
return status!= 'Processing';
}),
finalize(() => doSomething())
).subscribe();