This Javascript function seems to use the while loop in an asynchronous way. Is it the correct way to use while loops with asynchronous conditions?
var Boo;
var Foo = await getBar(i)
while(Foo) {
Boo = await getBar3(i)
if (Boo) {
// something
}
Foo = await getBar(i)
i++
}
What I think it does is this:
var Boo;
var Foo;
getBar(i).then( (a) => {
Foo = a;
if(Foo) {
getBar3(i).then( (a) => {
Boo = a
if(Boo) {
//something
i++;
getBar(i).then( (a} => { Repeat itself...}
}
}
}
})
If that's totally false could you show another way to do it with async await + while loop?
Thanks!!
Is it the correct way to use while loops with asynchronous conditions?
Yes. async function
s simply suspend their execution on every await
until the respective promises fulfills, and any control structures continue to work as before.