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.
Yep, it's fine to do it like this:
let stopped = false // infinite loop while(!stopped) { let res = await fetch('api link') if (res.something) stopped = true // stop when you want }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With