Я хочу перебрать серию асинхронных функций и завершить итерацию, когда возвращается false. Я новичок в rxjs
и не могу заставить работать описанный ниже вариант использования. Я чувствую, что не понимаю чего-то фундаментального. Может ли кто-нибудь указать мне на это?
function validateA(): Observable<any> {
// do stuff.
return of({ id: "A", result: true }); // hardcoding result for now
}
function validateB(): Observable<any> {
// do stuff
return of({ id: "B", result: true }); // hardcoding result for now
}
function validateC(): Observable<any> {
// do stuff
return of({ id: "C", result: false });// hardcoding result for now
}
from([validateA, validateB, validateC])
.pipe(
map(data => data()),
takeWhile(data => !!data.result)
)
.subscribe(data => console.log(`${data.id} passed!`));
https://stackblitz.com/edit/typescript-ub9c5r?file=index.ts&devtoolsheight=100